Android 6写入权限无法扩展SD卡

时间:2016-09-11 13:06:42

标签: android permissions android-external-storage

我无法获得内存扩展SD卡的Android 6写入权限。我收到异常“Permission denied”。我正在使用Android 6,targetSdkVersion 24,同时显示了使用权限请求和WRITE_EXTERNAL_STORAGE的运行时权限请求。我获得onRequestPermissionsResult()的ok权限重播。

我可以从这张SD卡读取,但我没有写信给它。我使用的是三星note 4,6.0.1。我正在尝试写入文件:“/ storage / 3530-3464 / my_file.txt”,我可以使用相同的路径读取此文件。我在这一行上得到例外:

File file = new File(SD1_StoragefilePath);
FileOutputStream fop = new FileOutputStream(file); // get permission exception here.

清单:

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

运行时权限:

ActivityCompat.requestPermissions(this, 
    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
    PERMISSION_REQ_REPLAY_WRITE_EXTERNAL_STORAGE);

1 个答案:

答案 0 :(得分:1)

感谢您的帮助greenapps。 使用SAF实现:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_CODE_STORAGE_ACCESS);

我可以对整个SD卡进行写访问。 有两个问题:

  1. 当实现intent命令时,一个有趣的卡选择活动矛,有没有办法读取这个选择活动,默认情况下选择SD根。 Intent.ACTION_OPEN_DOCUMENT_TREE activity
  2. 在每个应用程序启动时,此活动都会开始。 有没有办法记住这个授予的权限?