读/写可移动SD卡(android仿真器)

读/写可移动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

每次我尝试读取SD卡(可移动存储)的信息时,都会得到android.system.ErrnoException:statvfs failed:EACCES(权限被拒绝)

我在清单文件中添加了权限:

<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
    及其
    StorageVolume
    API


您想阅读哪类信息?这看起来不像sd卡的路径。设备的大小(总大小、可用大小)以及您想要写入什么?
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)