簡體   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