safer uri permission persistence
This commit is contained in:
parent
3a71f908eb
commit
f57e2a32b9
1 changed files with 12 additions and 5 deletions
|
@ -164,11 +164,18 @@ class MainActivity : FlutterActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||||
// save access permissions across reboots
|
val canPersist = (data.flags and Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION) != 0
|
||||||
val takeFlags = (data.flags
|
if (canPersist) {
|
||||||
and (Intent.FLAG_GRANT_READ_URI_PERMISSION
|
// save access permissions across reboots
|
||||||
or Intent.FLAG_GRANT_WRITE_URI_PERMISSION))
|
val takeFlags = (data.flags
|
||||||
contentResolver.takePersistableUriPermission(treeUri, takeFlags)
|
and (Intent.FLAG_GRANT_READ_URI_PERMISSION
|
||||||
|
or Intent.FLAG_GRANT_WRITE_URI_PERMISSION))
|
||||||
|
try {
|
||||||
|
contentResolver.takePersistableUriPermission(treeUri, takeFlags)
|
||||||
|
} catch (e: SecurityException) {
|
||||||
|
Log.w(LOG_TAG, "failed to take persistable URI permission for uri=$treeUri", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// resume pending action
|
// resume pending action
|
||||||
|
|
Loading…
Reference in a new issue