Detailed Explanation of Android 6.0 Distinguishing U Disk from SD Card Equipment

  • 2021-10-11 19:29:03
  • OfStack

As shown below:


public static boolean isSdcardExists(Context context) {

  StorageManager storageManager = StorageManager.from(context.getApplicationContext());
  List<VolumeInfo> volumes = storageManager.getVolumes();
  for (VolumeInfo volInfo : volumes) {
   DiskInfo diskInfo = volInfo.getDisk();
   if (diskInfo != null && diskInfo.isSd()) {
    String sdcardState = volInfo.getEnvironmentForState(volInfo.getState());
    if (Environment.MEDIA_MOUNTED.equals(sdcardState)) {
     return true;
    }
   }

  }
  return false;
 }

public static int isudiskExists(Context context) {
  int num = 0;
  StorageManager storageManager = StorageManager.from(context.getApplicationContext());
  List<VolumeInfo> volumes = storageManager.getVolumes();
  for (VolumeInfo volInfo : volumes) {
   DiskInfo diskInfo = volInfo.getDisk();
   if (diskInfo != null && diskInfo.isUsb()) {
    String sdcardState = volInfo.getEnvironmentForState(volInfo.getState());
    if (Environment.MEDIA_MOUNTED.equals(sdcardState)) {
     num++;
    }
   }

  }
  return num;
 }

Related articles: