AndroidはSDカードが存在するかどうかを判断し、容量照会

1845 ワード

AndroidでSDカードが存在するかどうかを判断する簡単な方法は以下の通りです.
まずAndroidManifestでxmlにSDカードアクセス権を追加
<!--  SDCard           -->  
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
<!--  SDCard       -->  
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>   

SDカードは存在するか
private boolean ExistSDCard() {  
  if (android.os.Environment.getExternalStorageState().equals(  
    android.os.Environment.MEDIA_MOUNTED)) {  
   return true;  
  } else  
   return false;  
 }  

SDカードの空き容量
public long getSDFreeSize(){  
     //  SD       
     File path = Environment.getExternalStorageDirectory();   
     StatFs sf = new StatFs(path.getPath());   
     //          (Byte)  
     long blockSize = sf.getBlockSize();   
     //           
     long freeBlocks = sf.getAvailableBlocks();  
     //  SD       
     //return freeBlocks * blockSize;  //  Byte  
     //return (freeBlocks * blockSize)/1024;   //  KB  
     return (freeBlocks * blockSize)/1024 /1024; //  MB  
   }      

SDカードの総容量
public long getSDAllSize(){  
     //  SD       
     File path = Environment.getExternalStorageDirectory();   
     StatFs sf = new StatFs(path.getPath());   
     //          (Byte)  
     long blockSize = sf.getBlockSize();   
     //          
     long allBlocks = sf.getBlockCount();  
     //  SD     
     //return allBlocks * blockSize; //  Byte  
     //return (allBlocks * blockSize)/1024; //  KB  
     return (allBlocks * blockSize)/1024/1024; //  MB