叙述U盘的两个路径程序识别到的U盘目录是 /storage/28BA-794A 28BA-794A 是我的U盘名字 // 通过BroadcastReceiver广播 获取系统中还有一个相同名字的U盘 那就是/mnt/media_rw/28BA-794A // 通过自写的 public static String kkk(Context context)路径1 /storage/28BA-794A 读正常写总是提示Permission denied 没有权限没有解决路径2 /mnt/media_rw/28BA-794A 读写正常推荐权限uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE/uses-permission android:nameandroid.permission.WRITE_MEDIA_STORAGEtools:ignoreProtectedPermissions /实例public static String kkk(Context context){ try{ StorageManager storageManager (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); Class storeManagerClazz Class.forName(android.os.storage.StorageManager); Method getVolumesMethod storeManagerClazz.getMethod(getVolumes); List? volumeInfos (List?)getVolumesMethod.invoke(storageManager); Class volumeInfoClazz Class.forName(android.os.storage.VolumeInfo); Field udiskPath volumeInfoClazz.getDeclaredField(internalPath); Method getFsUuidMethod volumeInfoClazz.getMethod(getFsUuid); if(volumeInfos ! null){ for(Object volumeInfo:volumeInfos){ String uuid (String)getFsUuidMethod.invoke(volumeInfo); if(uuid ! null){ String sUdiskPath (String)udiskPath.get(volumeInfo); // 结果是 /mnt/media_rw/28BA-794A Log.e(TAG, kkk: sUdiskPath); return sUdiskPath; } } } }catch(Exception e){ Log.e(TAG, check udisk error e.getMessage()); } return ; }
android-实例-获取U盘路径
叙述U盘的两个路径程序识别到的U盘目录是 /storage/28BA-794A 28BA-794A 是我的U盘名字 // 通过BroadcastReceiver广播 获取系统中还有一个相同名字的U盘 那就是/mnt/media_rw/28BA-794A // 通过自写的 public static String kkk(Context context)路径1 /storage/28BA-794A 读正常写总是提示Permission denied 没有权限没有解决路径2 /mnt/media_rw/28BA-794A 读写正常推荐权限uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE/uses-permission android:nameandroid.permission.WRITE_MEDIA_STORAGEtools:ignoreProtectedPermissions /实例public static String kkk(Context context){ try{ StorageManager storageManager (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); Class storeManagerClazz Class.forName(android.os.storage.StorageManager); Method getVolumesMethod storeManagerClazz.getMethod(getVolumes); List? volumeInfos (List?)getVolumesMethod.invoke(storageManager); Class volumeInfoClazz Class.forName(android.os.storage.VolumeInfo); Field udiskPath volumeInfoClazz.getDeclaredField(internalPath); Method getFsUuidMethod volumeInfoClazz.getMethod(getFsUuid); if(volumeInfos ! null){ for(Object volumeInfo:volumeInfos){ String uuid (String)getFsUuidMethod.invoke(volumeInfo); if(uuid ! null){ String sUdiskPath (String)udiskPath.get(volumeInfo); // 结果是 /mnt/media_rw/28BA-794A Log.e(TAG, kkk: sUdiskPath); return sUdiskPath; } } } }catch(Exception e){ Log.e(TAG, check udisk error e.getMessage()); } return ; }