diff options
| author | Svet Ganov <svetoslavganov@google.com> | 2016-08-24 00:08:00 -0700 |
|---|---|---|
| committer | Svet Ganov <svetoslavganov@google.com> | 2016-08-24 00:13:36 -0700 |
| commit | 890a210e41d6a77a87370e6782c2ee373fa857d1 (patch) | |
| tree | ae061364e800d5348e91023b54dc490056b5ea1d /core/java/android/accounts/AccountManager.java | |
| parent | 575bb0fd33aadbead46796e70490a178ed4772b4 (diff) | |
| parent | eeeebd346a06cc1af2366b933355ac49717136fa (diff) | |
resolve merge conflicts of eeeebd3 to master
Change-Id: I3aa0d1b9228be408837f7dd93a9b8268e564fc65
Diffstat (limited to 'core/java/android/accounts/AccountManager.java')
| -rw-r--r-- | core/java/android/accounts/AccountManager.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 531b5d7d58d9..26e7dac587f4 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -18,6 +18,7 @@ package android.accounts; import static android.Manifest.permission.GET_ACCOUNTS; +import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.Size; @@ -28,6 +29,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.IntentSender; import android.content.res.Resources; import android.database.SQLException; import android.os.Build; @@ -261,6 +263,15 @@ public class AccountManager { "android.accounts.AccountAuthenticator"; public static final String AUTHENTICATOR_ATTRIBUTES_NAME = "account-authenticator"; + /** + * Token for the special case where a UID has access only to an account + * but no authenticator specific auth tokens. + * + * @hide + */ + public static final String ACCOUNT_ACCESS_TOKEN = + "com.android.abbfd278-af8b-415d-af8b-7571d5dab133"; + private final Context mContext; private final IAccountManager mService; private final Handler mMainHandler; @@ -3059,4 +3070,49 @@ public class AccountManager { } }.start(); } + + /** + * Gets whether a given package under a user has access to an account. + * Can be called only from the system UID. + * + * @param account The account for which to check. + * @param packageName The package for which to check. + * @param userHandle The user for which to check. + * @return True if the package can access the account. + * + * @hide + */ + public boolean hasAccountAccess(@NonNull Account account, @NonNull String packageName, + @NonNull UserHandle userHandle) { + try { + return mService.hasAccountAccess(account, packageName, userHandle); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Creates an intent to request access to a given account for a UID. + * The returned intent should be stated for a result where {@link + * Activity#RESULT_OK} result means access was granted whereas {@link + * Activity#RESULT_CANCELED} result means access wasn't granted. Can + * be called only from the system UID. + * + * @param account The account for which to request. + * @param packageName The package name which to request. + * @param userHandle The user for which to request. + * @return The intent to request account access or null if the package + * doesn't exist. + * + * @hide + */ + public IntentSender createRequestAccountAccessIntentSenderAsUser(@NonNull Account account, + @NonNull String packageName, @NonNull UserHandle userHandle) { + try { + return mService.createRequestAccountAccessIntentSenderAsUser(account, packageName, + userHandle); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } |
