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