80,479
社区成员
发帖
与我相关
我的任务
分享
[/quote]8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
单词可能写错,勿介。。。[/quote]
我写错了,是/storage/sdcard1和/storage/emulated/0[/quote] 再补充一点,我是在4.2的系统下测试的,华为手机。[/quote]
华为C8813,测试,/storage/sdcard0和/storage/sdcard1,根据手机上默认存储位置设置的不同,/storagr/sdcard0可能是内置的,也可能是外置的。有没有办法可以找到真正sd卡的位置???
[/quote]8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
单词可能写错,勿介。。。[/quote]
我写错了,是/storage/sdcard1和/storage/emulated/0[/quote] 再补充一点,我是在4.2的系统下测试的,华为手机。
[/quote]8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
单词可能写错,勿介。。。[/quote]
我写错了,是/storage/sdcard1和/storage/emulated/0
[/quote]8楼说的是正确的,Environment.getExternalStorageDirectory()获取到的不一定是内置的,这句代码获取到的是默认存储位置,如果把默认存储位置改为sdcard,那么获取到的就是/storage/sdcard/1/..默认存储位置是内置的,获取到的是/storage/emulator/0/
单词可能写错,勿介。。。
StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
try {
Class<?>[] paramClasses = {};
Method getVolumePathsMethod = StorageManager.class.getMethod("getVolumePaths", paramClasses);
getVolumePathsMethod.setAccessible(true);
Object[] params = {};
Object invoke = getVolumePathsMethod.invoke(storageManager, params);
for (int i = 0; i < ((String[])invoke).length; i++) {
System.out.println(((String[])invoke)[i]);
}
} catch (NoSuchMethodException e1) {
e1.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
getExternalStoragePublicDirectory这是内部的啊
外部的话
StorageVolume是这个啊