Merge "Add hidden API for pre-authorizing URIs." into ics-mr0

This commit is contained in:
Dave Santoro
2011-10-13 16:32:17 -07:00
committed by Android (Google) Code Review
2 changed files with 61 additions and 0 deletions

View File

@@ -186,6 +186,59 @@ public final class ContactsContract {
*/
public static final String DEFERRED_SNIPPETING_QUERY = "deferred_snippeting_query";
/**
* <p>
* API for obtaining a pre-authorized version of a URI that normally requires special
* permission (beyond READ_CONTACTS) to read. The caller obtaining the pre-authorized URI
* must already have the necessary permissions to access the URI; otherwise a
* {@link SecurityException} will be thrown.
* </p>
* <p>
* The authorized URI returned in the bundle contains an expiring token that allows the
* caller to execute the query without having the special permissions that would normally
* be required.
* </p>
* <p>
* This API does not access disk, and should be safe to invoke from the UI thread.
* </p>
* <p>
* Example usage:
* <pre>
* Uri profileUri = ContactsContract.Profile.CONTENT_VCARD_URI;
* Bundle uriBundle = new Bundle();
* uriBundle.putParcelable(ContactsContract.Authorization.KEY_URI_TO_AUTHORIZE, uri);
* Bundle authResponse = getContext().getContentResolver().call(
* ContactsContract.AUTHORITY_URI,
* ContactsContract.Authorization.AUTHORIZATION_METHOD,
* null, // String arg, not used.
* uriBundle);
* if (authResponse != null) {
* Uri preauthorizedProfileUri = (Uri) authResponse.getParcelable(
* ContactsContract.Authorization.KEY_AUTHORIZED_URI);
* // This pre-authorized URI can be queried by a caller without READ_PROFILE
* // permission.
* }
* </pre>
* </p>
* @hide
*/
public static final class Authorization {
/**
* The method to invoke to create a pre-authorized URI out of the input argument.
*/
public static final String AUTHORIZATION_METHOD = "authorize";
/**
* The key to set in the outbound Bundle with the URI that should be authorized.
*/
public static final String KEY_URI_TO_AUTHORIZE = "uri_to_authorize";
/**
* The key to retrieve from the returned Bundle to obtain the pre-authorized URI.
*/
public static final String KEY_AUTHORIZED_URI = "authorized_uri";
}
/**
* @hide
*/

View File

@@ -4052,6 +4052,14 @@ public final class Settings {
/** Timeout for package verification. {@hide} */
public static final String PACKAGE_VERIFIER_TIMEOUT = "verifier_timeout";
/**
* Duration in milliseconds before pre-authorized URIs for the contacts
* provider should expire.
* @hide
*/
public static final String CONTACTS_PREAUTH_URI_EXPIRATION =
"contacts_preauth_uri_expiration";
/**
* This are the settings to be backed up.
*