J'essaie d'obtenir la taille de la mémoire externe. Mon code fonctionne parfaitement sur Lollipop et ci-dessous, mais donner exception du chemin non valide sur Guimauve et au-dessus mon code est iciANdroid: java.lang.IllegalArgumentException: Chemin d'accès invalide:/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();
}
Et j'appeler cette fonction dans mon activité
public static String getExternalTotalMemory() {
StatFs statFs2 = new StatFs(getExternalPath());
long blockSize2 = statFs2.getBlockSize();
final long totalSize2 = statFs2.getBlockCount() * blockSize2;;
return formatSize(totalSize2);
}
vous pouvez mettre pour 23+ l'autorisation d'exécution pour que vous puissiez ref cette https://developer.android.com/training/permissions/requesting.html –
@HarshitTrivedi je l'ai fait déjà fait ceci, mais je reçois la même chose –
J'ai utilisé ce code pour obtenir des autorisations ActivityCompat.requestPermissions (Main_Booster.this, new String [] {android.Manifest.permission.CLEAR_APP_CACHE, android.Manifest.permission.KILL_BACKGROUND_PROCESSES, android.Manifest. permission.WRITE_SETTINGS, android.Manifest.permission.BATTERY_STATS, android.Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permissi le.WRITE_EXTERNAL_STORAGE }, 1); –