summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/ContentResolver.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-10-09 14:21:08 -0700
committerJeff Sharkey <jsharkey@android.com>2013-10-09 14:32:11 -0700
commitbcaac0adecc8f9d7e66548df39e0f5c9f759e38c (patch)
tree439ac9eadc1d7f256d75c8d5807bf4f711d4dd01 /core/java/android/content/ContentResolver.java
parente6d419de77344300e342c8a0f6c013afeec87a72 (diff)
downloadframeworks_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.java23
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);
}