1
我正在使用存储访问框架获取sd卡上的写入权限(API> = 21)。takePersistableUriPermission()(SAF)上的java.lang.SecurityException
它可以在大多数设备上正常工作,但有些像Galaxy S7(Edge,API 23)在调用takePersistableUriPermission()时会抛出SecurityException。
Caused by: java.lang.SecurityException: No persistable permission grants found for UID 10150 and Uri 0 @ content://com.android.externalstorage.documents/tree/70CD-6B92
代码:
//call the SAF
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, Config.REQUEST_SAF);
//Persist permissions
int flags = resultData.getFlags();
flags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
this.getContentResolver().takePersistableUriPermission(treeUri, flags); //throws exception
异常不能在所有S7设备发生。我已经在2个设备上成功测试了代码,但是这个引发了SecurityException。
我可以添加一些标志给SAF的调用吗?
intent.addFlags(
Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION |
Intent.FLAG_GRANT_READ_URI_PERMISSION |
Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
任何帮助表示赞赏。
你有没有解决这个问题? –
还没有。似乎没有人知道它来自哪里。 – Farasy