public
class
AccountManager
extends Object
java.lang.Object | |
↳ | android.accounts.AccountManager |
This class provides access to a centralized registry of the user's online accounts. The user enters credentials (username and password) once per account, granting applications access to online resources with "one-click" approval.
Different online services have different ways of handling accounts and authentication, so the account manager uses pluggable authenticator modules for different account types. Authenticators (which may be written by third parties) handle the actual details of validating account credentials and storing account information. For example, Google, Facebook, and Microsoft Exchange each have their own authenticator.
Many servers support some notion of an authentication token, which can be used to authenticate a request to the server without sending the user's actual password. (Auth tokens are normally created with a separate request which does include the user's credentials.) AccountManager can generate auth tokens for applications, so the application doesn't need to handle passwords directly. Auth tokens are normally reusable and cached by AccountManager, but must be refreshed periodically. It's the responsibility of applications to invalidate auth tokens when they stop working so the AccountManager knows it needs to regenerate them.
Applications accessing a server normally go through these steps:
get(Context)
.
getAccountsByType(String)
or
getAccountsByTypeAndFeatures(String, String[], AccountManagerCallback, Handler)
. Normally applications will only
be interested in accounts with one particular type, which
identifies the authenticator. Account features are used to
identify particular account subtypes and capabilities. Both the account
type and features are authenticator-specific strings, and must be known by
the application in coordination with its preferred authenticators.
addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback, Handler)
may be called to prompt the user to create an
account of the appropriate type.
getAccountsByType(String)
. Requesting an auth token
for an account no longer on the device results in an undefined failure.
getAuthToken(Account, String, Bundle, Activity, AccountManagerCallback, Handler)
methods or related helpers. Refer to the description
of each method for exact usage and error handling details.
invalidateAuthToken(String, String)
to remove
the token from the cache, otherwise requests will continue failing! After
invalidating the auth token, immediately go back to the "Request an auth
token" step above. If the process fails the second time, then it can be
treated as a "genuine" authentication failure and the user notified or other
appropriate actions taken.
Some AccountManager methods may need to interact with the user to
prompt for credentials, present options, or ask the user to add an account.
The caller may choose whether to allow AccountManager to directly launch the
necessary user interface and wait for the user, or to return an Intent which
the caller may use to launch the interface, or (in some cases) to install a
notification which the user can select at any time to launch the interface.
To have AccountManager launch the interface directly, the caller must supply
the current foreground Activity
context.
Many AccountManager methods take AccountManagerCallback
and
Handler
as parameters. These methods return immediately and
run asynchronously. If a callback is provided then
run(AccountManagerFuture
will be invoked on the Handler's
thread when the request completes, successfully or not.
The result is retrieved by calling getResult()
on the AccountManagerFuture
returned by the method (and also passed
to the callback). This method waits for the operation to complete (if
necessary) and either returns the result or throws an exception if an error
occurred during the operation. To make the request synchronously, call
getResult()
immediately on receiving the
future from the method; no callback need be supplied.
Requests which may block, including
getResult()
, must never be called on
the application's main event thread. These operations throw
IllegalStateException
if they are used on the main thread.
Constants | |
---|---|
String |
ACTION_AUTHENTICATOR_INTENT
|
String |
AUTHENTICATOR_ATTRIBUTES_NAME
|
String |
AUTHENTICATOR_META_DATA_NAME
|
int |
ERROR_CODE_BAD_ARGUMENTS
|
int |
ERROR_CODE_BAD_AUTHENTICATION
|
int |
ERROR_CODE_BAD_REQUEST
|
int |
ERROR_CODE_CANCELED
|
int |
ERROR_CODE_INVALID_RESPONSE
|
int |
ERROR_CODE_NETWORK_ERROR
|
int |
ERROR_CODE_REMOTE_EXCEPTION
|
int |
ERROR_CODE_UNSUPPORTED_OPERATION
|
String |
KEY_ACCOUNTS
|
String |
KEY_ACCOUNT_AUTHENTICATOR_RESPONSE
|
String |
KEY_ACCOUNT_MANAGER_RESPONSE
|
String |
KEY_ACCOUNT_NAME
Bundle key used for the |
String |
KEY_ACCOUNT_TYPE
Bundle key used for the |
String |
KEY_ANDROID_PACKAGE_NAME
The Android package of the caller will be set in the options bundle by the
|
String |
KEY_AUTHENTICATOR_TYPES
|
String |
KEY_AUTHTOKEN
Bundle key used for the auth token value in results
from |
String |
KEY_AUTH_FAILED_MESSAGE
|
String |
KEY_AUTH_TOKEN_LABEL
|
String |
KEY_BOOLEAN_RESULT
|
String |
KEY_CALLER_PID
|
String |
KEY_CALLER_UID
Authenticators using 'customTokens' option will also get the UID of the caller |
String |
KEY_ERROR_CODE
|
String |
KEY_ERROR_MESSAGE
|
String |
KEY_INTENT
Bundle key used for an |
String |
KEY_LAST_AUTHENTICATED_TIME
Bundle key used to supply the last time the credentials of the account were authenticated successfully. |
String |
KEY_PASSWORD
Bundle key used to supply the password directly in options to
|
String |
KEY_USERDATA
|
String |
LOGIN_ACCOUNTS_CHANGED_ACTION
Action sent as a broadcast Intent by the AccountsService when accounts are added, accounts are removed, or an account's credentials (saved password, etc) are changed. |
Public methods | |
---|---|
AccountManagerFuture<Bundle>
|
addAccount(String accountType, String authTokenType, String[] requiredFeatures, Bundle addAccountOptions, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Asks the user to add an account of a specified type. |
boolean
|
addAccountExplicitly(Account account, String password, Bundle userdata)
Adds an account directly to the AccountManager. |
void
|
addOnAccountsUpdatedListener(OnAccountsUpdateListener listener, Handler handler, boolean updateImmediately)
Adds an |
String
|
blockingGetAuthToken(Account account, String authTokenType, boolean notifyAuthFailure)
This convenience helper synchronously gets an auth token with
|
void
|
clearPassword(Account account)
Forgets a saved password. |
AccountManagerFuture<Bundle>
|
confirmCredentials(Account account, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Confirms that the user knows the password for an account to make extra sure they are the owner of the account. |
AccountManagerFuture<Bundle>
|
editProperties(String accountType, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Offers the user an opportunity to change an authenticator's settings. |
static
AccountManager
|
get(Context context)
Gets an AccountManager instance associated with a Context. |
Account[]
|
getAccounts()
Lists all accounts of any type registered on the device. |
Account[]
|
getAccountsByType(String type)
Lists all accounts of a particular type. |
AccountManagerFuture<Account[]>
|
getAccountsByTypeAndFeatures(String type, String[] features, AccountManagerCallback<Account[]> callback, Handler handler)
Lists all accounts of a type which have certain features. |
Account[]
|
getAccountsByTypeForPackage(String type, String packageName)
Returns the accounts visible to the specified package, in an environment where some apps are not authorized to view all accounts. |
AccountManagerFuture<Bundle>
|
getAuthToken(Account account, String authTokenType, Bundle options, boolean notifyAuthFailure, AccountManagerCallback<Bundle> callback, Handler handler)
Gets an auth token of the specified type for a particular account, optionally raising a notification if the user must enter credentials. |
AccountManagerFuture<Bundle>
|
getAuthToken(Account account, String authTokenType, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Gets an auth token of the specified type for a particular account, prompting the user for credentials if necessary. |
AccountManagerFuture<Bundle>
|
getAuthToken(Account account, String authTokenType, boolean notifyAuthFailure, AccountManagerCallback<Bundle> callback, Handler handler)
This method was deprecated
in API level 14.
use |
AccountManagerFuture<Bundle>
|
getAuthTokenByFeatures(String accountType, String authTokenType, String[] features, Activity activity, Bundle addAccountOptions, Bundle getAuthTokenOptions, AccountManagerCallback<Bundle> callback, Handler handler)
This convenience helper combines the functionality of
|
AuthenticatorDescription[]
|
getAuthenticatorTypes()
Lists the currently registered authenticators. |
String
|
getPassword(Account account)
Gets the saved password associated with the account. |
String
|
getPreviousName(Account account)
Gets the previous name associated with the account or |
String
|
getUserData(Account account, String key)
Gets the user data named by "key" associated with the account. |
AccountManagerFuture<Boolean>
|
hasFeatures(Account account, String[] features, AccountManagerCallback<Boolean> callback, Handler handler)
Finds out whether a particular account has all the specified features. |
void
|
invalidateAuthToken(String accountType, String authToken)
Removes an auth token from the AccountManager's cache. |
static
Intent
|
newChooseAccountIntent(Account selectedAccount, List<Account> allowableAccounts, String[] allowableAccountTypes, String descriptionOverrideText, String addAccountAuthTokenType, String[] addAccountRequiredFeatures, Bundle addAccountOptions)
Returns an intent to an |
static
Intent
|
newChooseAccountIntent(Account selectedAccount, ArrayList<Account> allowableAccounts, String[] allowableAccountTypes, boolean alwaysPromptForAccount, String descriptionOverrideText, String addAccountAuthTokenType, String[] addAccountRequiredFeatures, Bundle addAccountOptions)
Deprecated in favor of |
boolean
|
notifyAccountAuthenticated(Account account)
Notifies the system that the account has just been authenticated. |
String
|
peekAuthToken(Account account, String authTokenType)
Gets an auth token from the AccountManager's cache. |
AccountManagerFuture<Bundle>
|
removeAccount(Account account, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Removes an account from the AccountManager. |
AccountManagerFuture<Boolean>
|
removeAccount(Account account, AccountManagerCallback<Boolean> callback, Handler handler)
This method was deprecated
in API level 22.
use
|
boolean
|
removeAccountExplicitly(Account account)
Removes an account directly. |
void
|
removeOnAccountsUpdatedListener(OnAccountsUpdateListener listener)
Removes an |
AccountManagerFuture<Account>
|
renameAccount(Account account, String newName, AccountManagerCallback<Account> callback, Handler handler)
Rename the specified |
void
|
setAuthToken(Account account, String authTokenType, String authToken)
Adds an auth token to the AccountManager cache for an account. |
void
|
setPassword(Account account, String password)
Sets or forgets a saved password. |
void
|
setUserData(Account account, String key, String value)
Sets one userdata key for an account. |
AccountManagerFuture<Bundle>
|
updateCredentials(Account account, String authTokenType, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Asks the user to enter a new password for an account, updating the saved credentials for the account. |
Inherited methods | |
---|---|
From
class
java.lang.Object
|
String ACTION_AUTHENTICATOR_INTENT
Constant Value: "android.accounts.AccountAuthenticator"
String AUTHENTICATOR_ATTRIBUTES_NAME
Constant Value: "account-authenticator"
String AUTHENTICATOR_META_DATA_NAME
Constant Value: "android.accounts.AccountAuthenticator"
int ERROR_CODE_BAD_ARGUMENTS
Constant Value: 7 (0x00000007)
int ERROR_CODE_BAD_AUTHENTICATION
Constant Value: 9 (0x00000009)
int ERROR_CODE_BAD_REQUEST
Constant Value: 8 (0x00000008)
int ERROR_CODE_INVALID_RESPONSE
Constant Value: 5 (0x00000005)
int ERROR_CODE_NETWORK_ERROR
Constant Value: 3 (0x00000003)
int ERROR_CODE_REMOTE_EXCEPTION
Constant Value: 1 (0x00000001)
int ERROR_CODE_UNSUPPORTED_OPERATION
Constant Value: 6 (0x00000006)
String KEY_ACCOUNT_AUTHENTICATOR_RESPONSE
Constant Value: "accountAuthenticatorResponse"
String KEY_ACCOUNT_MANAGER_RESPONSE
Constant Value: "accountManagerResponse"
String KEY_ACCOUNT_NAME
Bundle key used for the String
account name in results
from methods which return information about a particular account.
Constant Value: "authAccount"
String KEY_ACCOUNT_TYPE
Bundle key used for the String
account type in results
from methods which return information about a particular account.
Constant Value: "accountType"
String KEY_ANDROID_PACKAGE_NAME
The Android package of the caller will be set in the options bundle by the
AccountManager
and will be passed to the AccountManagerService and
to the AccountAuthenticators. The uid of the caller will be known by the
AccountManagerService as well as the AccountAuthenticators so they will be able to
verify that the package is consistent with the uid (a uid might be shared by many
packages).
Constant Value: "androidPackageName"
String KEY_AUTHENTICATOR_TYPES
Constant Value: "authenticator_types"
String KEY_AUTHTOKEN
Bundle key used for the auth token value in results
from getAuthToken(Account, String, Bundle, Activity, AccountManagerCallback
and friends.
Constant Value: "authtoken"
String KEY_AUTH_FAILED_MESSAGE
Constant Value: "authFailedMessage"
String KEY_AUTH_TOKEN_LABEL
Constant Value: "authTokenLabelKey"
String KEY_CALLER_UID
Authenticators using 'customTokens' option will also get the UID of the caller
Constant Value: "callerUid"
String KEY_INTENT
Bundle key used for an Intent
in results from methods that
may require the caller to interact with the user. The Intent can
be used to start the corresponding user interface activity.
Constant Value: "intent"
String KEY_LAST_AUTHENTICATED_TIME
Bundle key used to supply the last time the credentials of the account were authenticated successfully. Time is specified in milliseconds since epoch. Associated time is updated on successful authentication of account on adding account, confirming credentials, or updating credentials.
Constant Value: "lastAuthenticatedTime"
String KEY_PASSWORD
Bundle key used to supply the password directly in options to
confirmCredentials(Account, Bundle, Activity, AccountManagerCallback
, rather than prompting the user with
the standard password prompt.
Constant Value: "password"
String LOGIN_ACCOUNTS_CHANGED_ACTION
Action sent as a broadcast Intent by the AccountsService when accounts are added, accounts are removed, or an account's credentials (saved password, etc) are changed.
Constant Value: "android.accounts.LOGIN_ACCOUNTS_CHANGED"
AccountManagerFuture<Bundle> addAccount (String accountType, String authTokenType, String[] requiredFeatures, Bundle addAccountOptions, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Asks the user to add an account of a specified type. The authenticator for this account type processes this request with the appropriate user interface. If the user does elect to create a new account, the account name is returned.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
accountType |
String :
The type of account to add; must not be null |
authTokenType |
String :
The type of auth token (see getAuthToken(Account, String, Bundle, Activity, AccountManagerCallback )
this account will need to be able to generate, null for none |
requiredFeatures |
String :
The features (see hasFeatures(Account, String[], AccountManagerCallback ) this
account must have, null for none |
addAccountOptions |
Bundle :
Authenticator-specific options for the request,
may be null or empty |
activity |
Activity :
The Activity context to use for launching a new
authenticator-defined sub-Activity to prompt the user to create an
account; used only to call startActivity(); if null, the prompt
will not be launched directly, but the necessary Intent
will be returned to the caller instead |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle with
these fields if activity was specified and an account was created:
KEY_INTENT with the Intent needed to launch the
actual account creation process. If an error occurred,
getResult() throws:
|
boolean addAccountExplicitly (Account account, String password, Bundle userdata)
Adds an account directly to the AccountManager. Normally used by sign-up wizards associated with authenticators, not directly by applications.
Calling this method does not update the last authenticated timestamp,
referred by KEY_LAST_AUTHENTICATED_TIME
. To update it, call
notifyAccountAuthenticated(Account)
after getting success.
However, if this method is called when it is triggered by addAccount() or
addAccountAsUser() or similar functions, then there is no need to update
timestamp manually as it is updated automatically by framework on
successful completion of the mentioned functions.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that owns the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The Account to add |
password |
String :
The password to associate with the account, null for none |
userdata |
Bundle :
String values to use for the account's userdata, null for
none |
Returns | |
---|---|
boolean |
True if the account was successfully added, false if the account already exists, the account is null, or another error occurs. |
void addOnAccountsUpdatedListener (OnAccountsUpdateListener listener, Handler handler, boolean updateImmediately)
Adds an OnAccountsUpdateListener
to this instance of the
AccountManager
. This listener will be notified whenever the
list of accounts on the device changes.
As long as this listener is present, the AccountManager instance
will not be garbage-collected, and neither will the Context
used to retrieve it, which may be a large Activity instance. To avoid
memory leaks, you must remove this listener before then. Normally
listeners are added in an Activity or Service's onCreate(Bundle)
and removed in onDestroy()
.
The listener will only be informed of accounts that would be returned
to the caller via getAccounts()
. Typically this means that to
get any accounts, the caller will need to be grated the GET_ACCOUNTS
permission.
It is safe to call this method from the main thread.
Parameters | |
---|---|
listener |
OnAccountsUpdateListener :
The listener to send notifications to |
handler |
Handler :
Handler identifying the thread to use
for notifications, null for the main thread |
updateImmediately |
boolean :
If true, the listener will be invoked
(on the handler thread) right away with the current account list |
Throws | |
---|---|
IllegalArgumentException |
if listener is null |
IllegalStateException |
if listener was already added |
String blockingGetAuthToken (Account account, String authTokenType, boolean notifyAuthFailure)
This convenience helper synchronously gets an auth token with
getAuthToken(Account, String, boolean, AccountManagerCallback, Handler)
.
This method may block while a network request completes, and must never be made from the main thread.
NOTE: If targeting your app to work on API level 22 and before, USE_CREDENTIALS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account to fetch an auth token for |
authTokenType |
String :
The auth token type, see getAuthToken() |
notifyAuthFailure |
boolean :
If true, display a notification and return null
if authentication fails; if false, prompt and wait for the user to
re-enter correct credentials before returning |
Returns | |
---|---|
String |
An auth token of the specified type for this account, or null if authentication fails or none can be fetched. |
Throws | |
---|---|
AuthenticatorException |
if the authenticator failed to respond |
OperationCanceledException |
if the request was canceled for any reason, including the user canceling a credential request |
IOException |
if the authenticator experienced an I/O problem creating a new auth token, usually because of network trouble |
void clearPassword (Account account)
Forgets a saved password. This erases the local copy of the password; it does not change the user's account password on the server. Has the same effect as setPassword(account, null) but requires fewer permissions, and may be used by applications or management interfaces to "sign out" from an account.
This method only successfully clear the account's password when the caller has the same signature as the authenticator that owns the specified account. Otherwise, this method will silently fail.
It is safe to call this method from the main thread.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account whose password to clear
|
AccountManagerFuture<Bundle> confirmCredentials (Account account, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Confirms that the user knows the password for an account to make extra sure they are the owner of the account. The user-entered password can be supplied directly, otherwise the authenticator for this account type prompts the user with the appropriate interface. This method is intended for applications which want extra assurance; for example, the phone lock screen uses this to let the user unlock the phone with an account password if they forget the lock pattern.
If the user-entered password matches a saved password for this account, the request is considered valid; otherwise the authenticator verifies the password (usually by contacting the server).
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account to confirm password knowledge for |
options |
Bundle :
Authenticator-specific options for the request;
if the KEY_PASSWORD string field is present, the
authenticator may use it directly rather than prompting the user;
may be null or empty |
activity |
Activity :
The Activity context to use for launching a new
authenticator-defined sub-Activity to prompt the user to enter a
password; used only to call startActivity(); if null, the prompt
will not be launched directly, but the necessary Intent
will be returned to the caller instead |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle
with these fields if activity or password was supplied and
the account was successfully verified:
KEY_INTENT with the Intent needed to launch the
password prompt.
Also the returning Bundle may contain
|
AccountManagerFuture<Bundle> editProperties (String accountType, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Offers the user an opportunity to change an authenticator's settings. These properties are for the authenticator in general, not a particular account. Not all authenticators support this method.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
This method requires the caller to have the same signature as the authenticator associated with the specified account type.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
accountType |
String :
The account type associated with the authenticator
to adjust |
activity |
Activity :
The Activity context to use for launching a new
authenticator-defined sub-Activity to adjust authenticator settings;
used only to call startActivity(); if null, the settings dialog will
not be launched directly, but the necessary Intent will be
returned to the caller instead |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle
which is empty if properties were edited successfully, or
if no activity was specified, contains only KEY_INTENT
needed to launch the authenticator's settings dialog.
If an error occurred, getResult()
throws:
|
AccountManager get (Context context)
Gets an AccountManager instance associated with a Context.
The Context
will be used as long as the AccountManager is
active, so make sure to use a Context
whose lifetime is
commensurate with any listeners registered to
addOnAccountsUpdatedListener(OnAccountsUpdateListener, Handler, boolean)
or similar methods.
It is safe to call this method from the main thread.
No permission is required to call this method.
Parameters | |
---|---|
context |
Context :
The Context to use when necessary |
Returns | |
---|---|
AccountManager |
An AccountManager instance
|
Account[] getAccounts ()
Lists all accounts of any type registered on the device. Equivalent to getAccountsByType(null).
It is safe to call this method from the main thread.
Clients of this method that have not been granted the
GET_ACCOUNTS
permission,
will only see those accounts managed by AbstractAccountAuthenticators whose
signature matches the client.
Returns | |
---|---|
Account[] |
An array of Account , one for each account. Empty
(never null) if no accounts have been added.
|
Account[] getAccountsByType (String type)
Lists all accounts of a particular type. The account type is a string token corresponding to the authenticator and useful domain of the account. For example, there are types corresponding to Google and Facebook. The exact string token to use will be published somewhere associated with the authenticator in question.
It is safe to call this method from the main thread.
Clients of this method that have not been granted the
GET_ACCOUNTS
permission,
will only see those accounts managed by AbstractAccountAuthenticators whose
signature matches the client.
NOTE: If targeting your app to work on API level 22 and before, GET_ACCOUNTS permission is needed for those platforms, irrespective of uid or signature match. See docs for this function in API level 22.
Parameters | |
---|---|
type |
String :
The type of accounts to return, null to retrieve all accounts |
Returns | |
---|---|
Account[] |
An array of Account , one per matching account. Empty
(never null) if no accounts of the specified type have been added.
|
AccountManagerFuture<Account[]> getAccountsByTypeAndFeatures (String type, String[] features, AccountManagerCallback<Account[]> callback, Handler handler)
Lists all accounts of a type which have certain features. The account
type identifies the authenticator (see getAccountsByType(String)
).
Account features are authenticator-specific string tokens identifying
boolean account properties (see hasFeatures(Account, String[], AccountManagerCallback
).
Unlike getAccountsByType(String)
, this method calls the authenticator,
which may contact the server or do other work to check account features,
so the method returns an AccountManagerFuture
.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
Clients of this method that have not been granted the
GET_ACCOUNTS
permission,
will only see those accounts managed by AbstractAccountAuthenticators whose
signature matches the client.
Parameters | |
---|---|
type |
String :
The type of accounts to return, must not be null |
features |
String :
An array of the account features to require,
may be null or empty
NOTE: If targeting your app to work on API level 22 and before, GET_ACCOUNTS permission is needed for those platforms, irrespective of uid or signature match. See docs for this function in API level 22. |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Account[]> |
An AccountManagerFuture which resolves to an array of
Account , one per account of the specified type which
matches the requested features.
|
Account[] getAccountsByTypeForPackage (String type, String packageName)
Returns the accounts visible to the specified package, in an environment where some apps are not authorized to view all accounts. This method can only be called by system apps.
Parameters | |
---|---|
type |
String :
The type of accounts to return, null to retrieve all accounts |
packageName |
String :
The package name of the app for which the accounts are to be returned |
Returns | |
---|---|
Account[] |
An array of Account , one per matching account. Empty
(never null) if no accounts of the specified type have been added.
|
AccountManagerFuture<Bundle> getAuthToken (Account account, String authTokenType, Bundle options, boolean notifyAuthFailure, AccountManagerCallback<Bundle> callback, Handler handler)
Gets an auth token of the specified type for a particular account, optionally raising a notification if the user must enter credentials. This method is intended for background tasks and services where the user should not be immediately interrupted with a password prompt.
If a previously generated auth token is cached for this account and
type, then it is returned. Otherwise, if a saved password is
available, it is sent to the server to generate a new auth token.
Otherwise, an Intent
is returned which, when started, will
prompt the user for a password. If the notifyAuthFailure parameter is
set, a status bar notification is also created with the same Intent,
alerting the user that they need to enter a password at some point.
In that case, you may need to wait until the user responds, which
could take hours or days or forever. When the user does respond and
supply a new password, the account manager will broadcast the
LOGIN_ACCOUNTS_CHANGED_ACTION
Intent, which applications can
use to try again.
If notifyAuthFailure is not set, it is the application's responsibility to launch the returned Intent at some point. Either way, the result from this call will not wait for user action.
Some authenticators have auth token types, whose value is authenticator-dependent. Some services use different token types to access different functionality -- for example, Google uses different auth tokens to access Gmail and Google Calendar for the same account.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
NOTE: If targeting your app to work on API level 22 and before, USE_CREDENTIALS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account to fetch an auth token for |
authTokenType |
String :
The auth token type, an authenticator-dependent
string token, must not be null |
options |
Bundle :
Authenticator-specific options for the request,
may be null or empty |
notifyAuthFailure |
boolean :
True to add a notification to prompt the
user for a password if necessary, false to leave that to the caller |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle with
at least the following fields on success:
KEY_INTENT with the Intent needed to launch a prompt.
If an error occurred, getResult() throws:
|
AccountManagerFuture<Bundle> getAuthToken (Account account, String authTokenType, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Gets an auth token of the specified type for a particular account, prompting the user for credentials if necessary. This method is intended for applications running in the foreground where it makes sense to ask the user directly for a password.
If a previously generated auth token is cached for this account and type, then it is returned. Otherwise, if a saved password is available, it is sent to the server to generate a new auth token. Otherwise, the user is prompted to enter a password.
Some authenticators have auth token types, whose value is authenticator-dependent. Some services use different token types to access different functionality -- for example, Google uses different auth tokens to access Gmail and Google Calendar for the same account.
NOTE: If targeting your app to work on API level 22 and before, USE_CREDENTIALS permission is needed for those platforms. See docs for this function in API level 22.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
Parameters | |
---|---|
account |
Account :
The account to fetch an auth token for |
authTokenType |
String :
The auth token type, an authenticator-dependent
string token, must not be null |
options |
Bundle :
Authenticator-specific options for the request,
may be null or empty |
activity |
Activity :
The Activity context to use for launching a new
authenticator-defined sub-Activity to prompt the user for a password
if necessary; used only to call startActivity(); must not be null. |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle with
at least the following fields:
getResult() throws:
|
AccountManagerFuture<Bundle> getAuthToken (Account account, String authTokenType, boolean notifyAuthFailure, AccountManagerCallback<Bundle> callback, Handler handler)
This method was deprecated
in API level 14.
use getAuthToken(Account, String, android.os.Bundle, boolean, AccountManagerCallback, android.os.Handler)
instead
Gets an auth token of the specified type for a particular account, optionally raising a notification if the user must enter credentials. This method is intended for background tasks and services where the user should not be immediately interrupted with a password prompt.
If a previously generated auth token is cached for this account and
type, then it is returned. Otherwise, if a saved password is
available, it is sent to the server to generate a new auth token.
Otherwise, an Intent
is returned which, when started, will
prompt the user for a password. If the notifyAuthFailure parameter is
set, a status bar notification is also created with the same Intent,
alerting the user that they need to enter a password at some point.
In that case, you may need to wait until the user responds, which
could take hours or days or forever. When the user does respond and
supply a new password, the account manager will broadcast the
LOGIN_ACCOUNTS_CHANGED_ACTION
Intent, which applications can
use to try again.
If notifyAuthFailure is not set, it is the application's responsibility to launch the returned Intent at some point. Either way, the result from this call will not wait for user action.
Some authenticators have auth token types, whose value is authenticator-dependent. Some services use different token types to access different functionality -- for example, Google uses different auth tokens to access Gmail and Google Calendar for the same account.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
Parameters | |
---|---|
account |
Account :
The account to fetch an auth token for |
authTokenType |
String :
The auth token type, an authenticator-dependent
string token, must not be null |
notifyAuthFailure |
boolean :
True to add a notification to prompt the
user for a password if necessary, false to leave that to the caller |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle with
at least the following fields on success:
KEY_INTENT with the Intent needed to launch a prompt.
If an error occurred, getResult() throws:
|
AccountManagerFuture<Bundle> getAuthTokenByFeatures (String accountType, String authTokenType, String[] features, Activity activity, Bundle addAccountOptions, Bundle getAuthTokenOptions, AccountManagerCallback<Bundle> callback, Handler handler)
This convenience helper combines the functionality of
getAccountsByTypeAndFeatures(String, String[], AccountManagerCallback
, getAuthToken(Account, String, Bundle, Activity, AccountManagerCallback
, and
addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback
.
This method gets a list of the accounts matching the specified type and feature set; if there is exactly one, it is used; if there are more than one, the user is prompted to pick one; if there are none, the user is prompted to add one. Finally, an auth token is acquired for the chosen account.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
accountType |
String :
The account type required
(see getAccountsByType(String) ), must not be null |
authTokenType |
String :
The desired auth token type
(see getAuthToken(Account, String, Bundle, Activity, AccountManagerCallback ), must not be null |
features |
String :
Required features for the account
(see getAccountsByTypeAndFeatures(String, String[], AccountManagerCallback ), may be null or empty |
activity |
Activity :
The Activity context to use for launching new
sub-Activities to prompt to add an account, select an account,
and/or enter a password, as necessary; used only to call
startActivity(); should not be null |
addAccountOptions |
Bundle :
Authenticator-specific options to use for
adding new accounts; may be null or empty |
getAuthTokenOptions |
Bundle :
Authenticator-specific options to use for
getting auth tokens; may be null or empty |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle with
at least the following fields:
getResult() throws:
|
AuthenticatorDescription[] getAuthenticatorTypes ()
Lists the currently registered authenticators.
It is safe to call this method from the main thread.
No permission is required to call this method.
Returns | |
---|---|
AuthenticatorDescription[] |
An array of AuthenticatorDescription for every
authenticator known to the AccountManager service. Empty (never
null) if no authenticators are known.
|
String getPassword (Account account)
Gets the saved password associated with the account. This is intended for authenticators and related code; applications should get an auth token instead.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that owns the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account to query for a password. Must not be null . |
Returns | |
---|---|
String |
The account's password, null if none or if the account doesn't exist |
String getPreviousName (Account account)
Gets the previous name associated with the account or null
, if
none. This is intended so that clients of LOGIN_ACCOUNTS_CHANGED_ACTION
broadcasts can determine if an
authenticator has renamed an account.
It is safe to call this method from the main thread.
Parameters | |
---|---|
account |
Account :
The account to query for a previous name. |
Returns | |
---|---|
String |
The account's previous name, null if the account has never been renamed. |
String getUserData (Account account, String key)
Gets the user data named by "key" associated with the account. This is intended for authenticators and related code to store arbitrary metadata along with accounts. The meaning of the keys and values is up to the authenticator for the account.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that owns the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account to query for user data |
key |
String
|
Returns | |
---|---|
String |
The user data, null if the account or key doesn't exist |
AccountManagerFuture<Boolean> hasFeatures (Account account, String[] features, AccountManagerCallback<Boolean> callback, Handler handler)
Finds out whether a particular account has all the specified features. Account features are authenticator-specific string tokens identifying boolean account properties. For example, features are used to tell whether Google accounts have a particular service (such as Google Calendar or Google Talk) enabled. The feature names and their meanings are published somewhere associated with the authenticator in question.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
This method requires the caller to hold the permission
GET_ACCOUNTS
or be a signature
match with the AbstractAccountAuthenticator that manages the account.
Parameters | |
---|---|
account |
Account :
The Account to test |
features |
String :
An array of the account features to check |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Boolean> |
An AccountManagerFuture which resolves to a Boolean,
true if the account exists and has all of the specified features.
|
void invalidateAuthToken (String accountType, String authToken)
Removes an auth token from the AccountManager's cache. Does nothing if the auth token is not currently in the cache. Applications must call this method when the auth token is found to have expired or otherwise become invalid for authenticating requests. The AccountManager does not validate or expire cached auth tokens otherwise.
It is safe to call this method from the main thread.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS or USE_CREDENTIALS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
accountType |
String :
The account type of the auth token to invalidate, must not be null |
authToken |
String :
The auth token to invalidate, may be null
|
Intent newChooseAccountIntent (Account selectedAccount, List<Account> allowableAccounts, String[] allowableAccountTypes, String descriptionOverrideText, String addAccountAuthTokenType, String[] addAccountRequiredFeatures, Bundle addAccountOptions)
Returns an intent to an Activity
that prompts the user to choose from a list of
accounts.
The caller will then typically start the activity by calling
startActivityForResult(intent, ...);
.
On success the activity returns a Bundle with the account name and type specified using
keys KEY_ACCOUNT_NAME
and KEY_ACCOUNT_TYPE
.
The most common case is to call this with one account type, e.g.:
newChooseAccountIntent(null, null, new String[]{"com.google"}, null, null, null, null);
Parameters | |
---|---|
selectedAccount |
Account :
if specified, indicates that the Account is the currently
selected one, according to the caller's definition of selected. |
allowableAccounts |
List :
an optional List of accounts that are allowed to be
shown. If not specified then this field will not limit the displayed accounts. |
allowableAccountTypes |
String :
an optional string array of account types. These are used
both to filter the shown accounts and to filter the list of account types that are shown
when adding an account. If not specified then this field will not limit the displayed
account types when adding an account. |
descriptionOverrideText |
String :
if non-null this string is used as the description in the
accounts chooser screen rather than the default |
addAccountAuthTokenType |
String :
this string is passed as the addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback
authTokenType parameter |
addAccountRequiredFeatures |
String :
this string array is passed as the addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback
requiredFeatures parameter |
addAccountOptions |
Bundle :
This Bundle is passed as the addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback options
parameter |
Returns | |
---|---|
Intent |
an Intent that can be used to launch the ChooseAccount activity flow.
|
Intent newChooseAccountIntent (Account selectedAccount, ArrayList<Account> allowableAccounts, String[] allowableAccountTypes, boolean alwaysPromptForAccount, String descriptionOverrideText, String addAccountAuthTokenType, String[] addAccountRequiredFeatures, Bundle addAccountOptions)
Deprecated in favor of newChooseAccountIntent(Account, List, String[], String, String, String[], Bundle)
.
Returns an intent to an Activity
that prompts the user to choose from a list of
accounts.
The caller will then typically start the activity by calling
startActivityForResult(intent, ...);
.
On success the activity returns a Bundle with the account name and type specified using
keys KEY_ACCOUNT_NAME
and KEY_ACCOUNT_TYPE
.
The most common case is to call this with one account type, e.g.:
newChooseAccountIntent(null, null, new String[]{"com.google"}, false, null, null, null, null);
Parameters | |
---|---|
selectedAccount |
Account :
if specified, indicates that the Account is the currently
selected one, according to the caller's definition of selected. |
allowableAccounts |
ArrayList :
an optional List of accounts that are allowed to be
shown. If not specified then this field will not limit the displayed accounts. |
allowableAccountTypes |
String :
an optional string array of account types. These are used
both to filter the shown accounts and to filter the list of account types that are shown
when adding an account. If not specified then this field will not limit the displayed
account types when adding an account. |
alwaysPromptForAccount |
boolean :
boolean that is ignored. |
descriptionOverrideText |
String :
if non-null this string is used as the description in the
accounts chooser screen rather than the default |
addAccountAuthTokenType |
String :
this string is passed as the addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback
authTokenType parameter |
addAccountRequiredFeatures |
String :
this string array is passed as the addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback
requiredFeatures parameter |
addAccountOptions |
Bundle :
This Bundle is passed as the addAccount(String, String, String[], Bundle, Activity, AccountManagerCallback options
parameter |
Returns | |
---|---|
Intent |
an Intent that can be used to launch the ChooseAccount activity flow.
|
boolean notifyAccountAuthenticated (Account account)
Notifies the system that the account has just been authenticated. This information may be used by other applications to verify the account. This should be called only when the user has entered correct credentials for the account.
It is not safe to call this method from the main thread. As such, call it from another thread.
This method requires the caller to have a signature match with the authenticator that owns the specified account.
Parameters | |
---|---|
account |
Account :
The Account to be updated. |
Returns | |
---|---|
boolean |
boolean true if the authentication of the account has been successfully
acknowledged. Otherwise false .
|
String peekAuthToken (Account account, String authTokenType)
Gets an auth token from the AccountManager's cache. If no auth token is cached for this account, null will be returned -- a new auth token will not be generated, and the server will not be contacted. Intended for use by the authenticator, not directly by applications.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission and same UID as account's authenticator is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account for which an auth token is to be fetched. Cannot be null . |
authTokenType |
String :
The type of auth token to fetch. Cannot be null . |
Returns | |
---|---|
String |
The cached auth token for this account and type, or null if no auth token is cached or the account does not exist. |
AccountManagerFuture<Bundle> removeAccount (Account account, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Removes an account from the AccountManager. Does nothing if the account does not exist. Does not delete the account from the server. The authenticator may have its own policies preventing account deletion, in which case the account will not be deleted.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The Account to remove |
activity |
Activity :
The Activity context to use for launching a new
authenticator-defined sub-Activity to prompt the user to delete an
account; used only to call startActivity(); if null, the prompt
will not be launched directly, but the Intent may be
returned to the caller instead |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle with
KEY_BOOLEAN_RESULT if activity was specified and an account
was removed or if active. If no activity was specified, the returned
Bundle contains only KEY_INTENT with the Intent
needed to launch the actual account removal process, if authenticator
needs the activity launch. If an error occurred,
getResult() throws:
|
AccountManagerFuture<Boolean> removeAccount (Account account, AccountManagerCallback<Boolean> callback, Handler handler)
This method was deprecated
in API level 22.
use
removeAccount(Account, Activity, AccountManagerCallback, Handler)
instead
Removes an account from the AccountManager. Does nothing if the account does not exist. Does not delete the account from the server. The authenticator may have its own policies preventing account deletion, in which case the account will not be deleted.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The Account to remove |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Boolean> |
An AccountManagerFuture which resolves to a Boolean,
true if the account has been successfully removed |
boolean removeAccountExplicitly (Account account)
Removes an account directly. Normally used by authenticators, not directly by applications. Does not delete the account from the server. The authenticator may have its own policies preventing account deletion, in which case the account will not be deleted.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission and same UID as account's authenticator is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The Account to delete. |
Returns | |
---|---|
boolean |
True if the account was successfully deleted, false if the account did not exist, the account is null, or another error occurs. |
void removeOnAccountsUpdatedListener (OnAccountsUpdateListener listener)
Removes an OnAccountsUpdateListener
previously registered with
addOnAccountsUpdatedListener(OnAccountsUpdateListener, Handler, boolean)
. The listener will no longer
receive notifications of account changes.
It is safe to call this method from the main thread.
No permission is required to call this method.
Parameters | |
---|---|
listener |
OnAccountsUpdateListener :
The previously added listener to remove |
Throws | |
---|---|
IllegalArgumentException |
if listener is null |
IllegalStateException |
if listener was not already added |
AccountManagerFuture<Account> renameAccount (Account account, String newName, AccountManagerCallback<Account> callback, Handler handler)
Rename the specified Account
. This is equivalent to removing
the existing account and adding a new renamed account with the old
account's user data.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission and same UID as account's authenticator is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The Account to rename |
newName |
String :
String name to be associated with the account. |
callback |
AccountManagerCallback :
Callback to invoke when the request completes, null for
no callback |
handler |
Handler :
Handler identifying the callback thread, null for
the main thread |
Returns | |
---|---|
AccountManagerFuture<Account> |
An AccountManagerFuture which resolves to the Account
after the name change. If successful the account's name will be the
specified new name.
|
void setAuthToken (Account account, String authTokenType, String authToken)
Adds an auth token to the AccountManager cache for an account. If the account does not exist then this call has no effect. Replaces any previous auth token for this account and auth token type. Intended for use by the authenticator, not directly by applications.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission and same UID as account's authenticator is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account to set an auth token for |
authTokenType |
String :
The type of the auth token, see {#getAuthToken} |
authToken |
String :
The auth token to add to the cache
|
void setPassword (Account account, String password)
Sets or forgets a saved password. This modifies the local copy of the password used to automatically authenticate the user; it does not change the user's account password on the server. Intended for use by the authenticator, not directly by applications.
Calling this method does not update the last authenticated timestamp,
referred by KEY_LAST_AUTHENTICATED_TIME
. To update it, call
notifyAccountAuthenticated(Account)
after getting success.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission and same UID as account's authenticator is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account whose password is to be set. Cannot be
null . |
password |
String :
The password to set, null to clear the password
|
void setUserData (Account account, String key, String value)
Sets one userdata key for an account. Intended by use for the authenticator to stash state for itself, not directly by applications. The meaning of the keys and values is up to the authenticator.
It is safe to call this method from the main thread.
This method requires the caller to have a signature match with the authenticator that manages the specified account.
NOTE: If targeting your app to work on API level 22 and before, AUTHENTICATE_ACCOUNTS permission and same UID as account's authenticator is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
Account whose user data is to be set. Must not be null . |
key |
String :
String user data key to set. Must not be null |
value |
String :
String value to set, null to clear this user data key
|
AccountManagerFuture<Bundle> updateCredentials (Account account, String authTokenType, Bundle options, Activity activity, AccountManagerCallback<Bundle> callback, Handler handler)
Asks the user to enter a new password for an account, updating the saved credentials for the account. Normally this happens automatically when the server rejects credentials during an auth token fetch, but this can be invoked directly to ensure we have the correct credentials stored.
This method may be called from any thread, but the returned
AccountManagerFuture
must not be used on the main thread.
NOTE: If targeting your app to work on API level 22 and before, MANAGE_ACCOUNTS permission is needed for those platforms. See docs for this function in API level 22.
Parameters | |
---|---|
account |
Account :
The account to update credentials for |
authTokenType |
String :
The credentials entered must allow an auth token
of this type to be created (but no actual auth token is returned);
may be null |
options |
Bundle :
Authenticator-specific options for the request;
may be null or empty |
activity |
Activity :
The Activity context to use for launching a new
authenticator-defined sub-Activity to prompt the user to enter a
password; used only to call startActivity(); if null, the prompt
will not be launched directly, but the necessary Intent
will be returned to the caller instead |
callback |
AccountManagerCallback :
Callback to invoke when the request completes,
null for no callback |
handler |
Handler :
Handler identifying the callback thread,
null for the main thread |
Returns | |
---|---|
AccountManagerFuture<Bundle> |
An AccountManagerFuture which resolves to a Bundle
with these fields if an activity was supplied and the account
credentials were successfully updated:
KEY_INTENT with the Intent needed to launch the
password prompt. If an error occurred,
getResult() throws:
|