繁体   English   中英

读/写可移动SD卡(android模拟器)

[英]Read/Write Removable SD Card (android emulator)

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

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

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

作为minSdkVersion> 23

   public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permission != PackageManager.PERMISSION_GRANTED) {
        // We don't have permission so prompt the user
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE
        );
    }
}

创建活动时会调用上面的方法(它显示弹出窗口,我允许访问)

但是当我尝试访问设备时:(Path = / mnt / media_rw / 13F4-1C18)

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) 

你知道如何允许访问可移动设备吗?

谢谢 !

SD卡(外部存储)

可移动存储不是外部存储

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

这些权限与可移动存储无关。

我收到了这个错误

您没有直接文件系统访问可移动存储上的任意位置。

你知道如何允许访问EXTERNAL SD CARD吗?

或者:

  • 在Android 4.4+上,在Android 4.4+上使用getExternalFilesDirs()getExternalCacheDirs()和/或getExternalMediaDirs() (请注意方法名称的复数形式),以便在可移动存储上访问应用程序的唯一目录。 您无需任何权限即可使用这些目录。

  • 在Android 4.4+上,停止考虑可移动存储并使用存储访问框架 这允许用户指定内容所在的位置,可以是外部存储,可移动存储,Google云端硬盘等。

  • 在Android 7.0+上,使用StorageManager及其StorageVolume API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM