我正在尝试读取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);
访问该文件需要做些什么?
答案 0 :(得分:2)
访问该文件需要做些什么?
Android 4.4 +上的removable storage上没有直接文件系统访问任意位置。
如果可能,请将文件移至其他位置(例如external storage)。
或者use ACTION_OPEN_DOCUMENT
并让用户选择该文件,然后使用ContentResolver
和openInputStream()
来处理Uri
所识别的内容{来自onActivityResult()
请求的{1}}。