diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-10-09 14:21:08 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-10-09 14:32:11 -0700 |
commit | bcaac0adecc8f9d7e66548df39e0f5c9f759e38c (patch) | |
tree | 439ac9eadc1d7f256d75c8d5807bf4f711d4dd01 /core/java/android/content/ContentResolver.java | |
parent | e6d419de77344300e342c8a0f6c013afeec87a72 (diff) | |
download | frameworks_base-bcaac0adecc8f9d7e66548df39e0f5c9f759e38c.zip frameworks_base-bcaac0adecc8f9d7e66548df39e0f5c9f759e38c.tar.gz frameworks_base-bcaac0adecc8f9d7e66548df39e0f5c9f759e38c.tar.bz2 |
Surface outgoing Uri permission grants.
This enables apps to discover and clean up persisted Uri grants when
the underlying Uri becomes invalid, such as when an account is
removed.
Bug: 11142566
Change-Id: Ieeb36cb1155acf226327ebe91cdd30b822d69d1b
Diffstat (limited to 'core/java/android/content/ContentResolver.java')
-rw-r--r-- | core/java/android/content/ContentResolver.java | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index 916a6cd..49dfdb5 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -1659,8 +1659,9 @@ public abstract class ContentResolver { } /** - * Return list of all Uri permission grants that have been persisted for the - * calling app. Only persistable grants taken with + * Return list of all Uri permission grants that have been persisted by the + * calling app. That is, the returned permissions have been granted + * <em>to</em> the calling app. Only persistable grants taken with * {@link #takePersistableUriPermission(Uri, int)} are returned. * * @see #takePersistableUriPermission(Uri, int) @@ -1668,7 +1669,23 @@ public abstract class ContentResolver { */ public List<UriPermission> getPersistedUriPermissions() { try { - return ActivityManagerNative.getDefault().getPersistedUriPermissions().getList(); + return ActivityManagerNative.getDefault() + .getPersistedUriPermissions(mPackageName, true).getList(); + } catch (RemoteException e) { + throw new RuntimeException("Activity manager has died", e); + } + } + + /** + * Return list of all persisted Uri permission grants that are hosted by the + * calling app. That is, the returned permissions have been granted + * <em>from</em> the calling app. Only grants taken with + * {@link #takePersistableUriPermission(Uri, int)} are returned. + */ + public List<UriPermission> getOutgoingPersistedUriPermissions() { + try { + return ActivityManagerNative.getDefault() + .getPersistedUriPermissions(mPackageName, false).getList(); } catch (RemoteException e) { throw new RuntimeException("Activity manager has died", e); } |