2017-09-28 13 views
-1

外部メモリサイズを取得しようとしています。私のコードは、上記の私のコードはここにANdroid:java.lang.IllegalArgumentException:無効なパス:/ storage/extSdCard

public static String getExternalPath(){ 

    String sSDpath = null; 
    File fileCur = null; 
    for(String sPathCur : Arrays.asList("MicroSD", "external_SD", "sdcard1", "ext_card", "external_sd", "ext_sd", "external", "extSdCard", "externalSdCard")) // external sdcard 
    { 

     fileCur = new File("/mnt/", sPathCur); 
     if(fileCur.isDirectory() && fileCur.canWrite()) 
     { 
      sSDpath = fileCur.getAbsolutePath(); 
      break; 
     } 
     if(sSDpath == null) { 
      fileCur = new File("/storage/", sPathCur); 
      if(fileCur.isDirectory() && fileCur.canWrite()) 
      { 
       sSDpath = fileCur.getAbsolutePath(); 
       break; 
      } 
     } 
     if(sSDpath == null) { 
      fileCur = new File("/storage/emulated", sPathCur); 
      if(fileCur.isDirectory() && fileCur.canWrite()) 
      { 
       sSDpath = fileCur.getAbsolutePath(); 
       //Log.e("path",sSDpath); 
       break; 
      } 
     } 
    } 
    fileCur = new File("/storage/extSdCard"); 

    return fileCur.getAbsolutePath(); 
} 

であると私はマシュマロで

public static String getExternalTotalMemory() { 
    StatFs statFs2 = new StatFs(getExternalPath()); 
    long blockSize2 = statFs2.getBlockSize(); 
    final long totalSize2 = statFs2.getBlockCount() * blockSize2;; 
    return formatSize(totalSize2); 
} 
+0

をエミュレートhttps://developer.android.com/training/permissions/requesting.html –

+0

@HarshitTrivedi私はすでにやったんでしたこれは私も同じことをしています –

+0

私はこのコードを使用してActivityCompat.requestPermissions(Main_Booster.this、 新しいString [] {android.Manifest.permission.CLEAR_APP_CACHE、android.Manifest.permission.KILL_BACKGROUND_PROCESSES、 android.Manifestを取得しました。アクセス許可.RITE_SETTINGS、android.Manifest.permission.BATTERY_STATS、android.Manifest.permission.ACCESS_NETWORK_STATE、 Manifest.permission.READ_EXTERNAL_STORAGE、android.Manifest.permissi on.WRITE_EXTERNAL_STORAGE }、 1); –

答えて

0

私の活動でこの関数を呼び出し、マシュマロに無効なパスの例外を与え、 上ロリポップ上で完璧に動作し、以下けどさversion外部のsdcardのパスが変更されるのでエラーになります。

この場所で外部のSDカードを検索する必要があります。

/ストレージ/あなたがこれをrefをできるように、ランタイム許可23+のために置くことができます/ 0

関連する問題