读/写可移动SD卡(android仿真器)
每次我尝试读取SD卡(可移动存储)的信息时,都会得到android.system.ErrnoException:statvfs failed:EACCES(权限被拒绝) 我在清单文件中添加了权限:读/写可移动SD卡(android仿真器),android,android-manifest,android-permissions,android-sdcard,android-storage,Android,Android Manifest,Android Permissions,Android Sdcard,Android Storage,每次我尝试读取SD卡(可移动存储)的信息时,都会得到android.system.ErrnoException:statvfs failed:EACCES(权限被拒绝) 我在清单文件中添加了权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_S
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
创建活动时调用上述方法(显示弹出窗口,我允许访问)
但是当我尝试访问设备时:(Path=/mnt/media\u rw/13F4-1C18)
我得到了这个错误:
java.lang.IllegalArgumentException: Invalid path: /mnt/media_rw/13F4-1C18
at android.os.StatFs.doStat(StatFs.java:46)
at android.os.StatFs.<init>(StatFs.java:39)
.....
Caused by: android.system.ErrnoException: statvfs failed: EACCES (Permission denied)
at libcore.io.Posix.statvfs(Native Method)
at libcore.io.BlockGuardOs.statvfs(BlockGuardOs.java:304)
at android.system.Os.statvfs(Os.java:506)
at android.os.StatFs.doStat(StatFs.java:44)
at android.os.StatFs.<init>(StatFs.java:39)
java.lang.IllegalArgumentException:无效路径:/mnt/media\u rw/13F4-1C18
位于android.os.StatFs.doStat(StatFs.java:46)
位于android.os.StatFs(StatFs.java:39)
.....
原因:android.system.ErrnoException:statvfs失败:EACCES(权限被拒绝)
位于libcore.io.Posix.statvfs(本机方法)
位于libcore.io.BlockGuardOs.statvfs(BlockGuardOs.java:304)
位于android.system.Os.statvfs(Os.java:506)
位于android.os.StatFs.doStat(StatFs.java:44)
位于android.os.StatFs(StatFs.java:39)
您知道如何允许访问可移动设备吗
谢谢
SD卡(外部存储器)
事实并非如此
我在清单文件中添加了权限
这些权限与可移动存储无关
我犯了这个错误
您不能直接访问可移动存储上的任意位置
您知道如何允许访问外部SD卡吗
要么:
- 在Android 4.4+上,使用Android 4.4+上的
,getExternalFilesDirs()
,和/或getExternalCacheDirs()
(注意方法名称的复数形式),在可移动存储上访问应用程序的唯一目录。使用这些目录不需要任何权限getExternalMediaDirs()
- 在Android 4.4+上,不要再考虑可移动存储和使用。这允许用户指定内容所在的位置,可以是外部存储、可移动存储、Google Drive等
- 在Android 7.0+上,使用
及其StorageManager
APIStorageVolume
StatFs stat = new StatFs(path);
java.lang.IllegalArgumentException: Invalid path: /mnt/media_rw/13F4-1C18
at android.os.StatFs.doStat(StatFs.java:46)
at android.os.StatFs.<init>(StatFs.java:39)
.....
Caused by: android.system.ErrnoException: statvfs failed: EACCES (Permission denied)
at libcore.io.Posix.statvfs(Native Method)
at libcore.io.BlockGuardOs.statvfs(BlockGuardOs.java:304)
at android.system.Os.statvfs(Os.java:506)
at android.os.StatFs.doStat(StatFs.java:44)
at android.os.StatFs.<init>(StatFs.java:39)