从任意SD卡文件夹中读取

时间:2016-06-06 17:17:18

标签: android android-sdcard sd-card android-permissions

我正在尝试读取SD卡上的字典(该文件夹的内容由第三方应用程序管理 - 例如dropbox)。

虽然我授予了我的应用权限:

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

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

该应用程序仅用于一种类型的设备Samsung Galaxy Tab 10.1(Android 5.0.2),因此我知道sdCard的确切路径以及我尝试阅读的文件:/storage/extSdCard/sip.png < / p>

我打电话的时候:

FileOutputStream out = new FileOutputStream("/storage/extSdCard/sip.png");

它抛出:

  

异常java.io.FileNotFoundException:/storage/extSdCard/sip.png:   开放失败:EACCES(权限被拒绝)

我也尝试过:

grantUriPermission(getPackageName(), new Uri.parse("/storage/extSdCard"),
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

访问该文件需要做些什么?

1 个答案:

答案 0 :(得分:2)

  

访问该文件需要做些什么?

Android 4.4 +上的removable storage上没有直接文件系统访问任意位置。

如果可能,请将文件移至其他位置(例如external storage)。

或者use ACTION_OPEN_DOCUMENT并让用户选择该文件,然后使用ContentResolveropenInputStream()来处理Uri所识别的内容{来自onActivityResult()请求的{1}}。

相关问题