有没有人可以帮我一步一步地在安卓中使用AccountManager,并给出一个简约的例子,以便更好地理解?
发布于 2011-05-10 03:13:59
实际上,我回答这个问题是为了让我自己对此有一个清晰的理解,所以我这样说(我对Android还不是很精通):
应用程序通常需要首先检查帐户是否存在,您可以使用:
AccountManager mgr = AccountManager.get(getApplicationContext());
Account[] accounts = mgr.getAccountsByType("com.mydomain");
// assert that accounts is not empty您将希望使用AccountManagerFuture<Bundle>来保存身份验证令牌的结果。这必须是异步的,因为Android设备可能会要求用户同时登录:
private AccountManagerFuture<Bundle> myFuture = null;
private AccountManagerCallback<Bundle> myCallback = new AccountManagerCallback<Bundle>() {
@Override public void run(final AccountManagerFuture<Bundle> arg0) {
try {
myFuture.getResult().get(AccountManager.KEY_AUTHTOKEN); // this is your auth token
} catch (Exception e) {
// handle error
}
}}
现在,您可以异步请求auth令牌:
myFuture = mgr.getAuthToken(accounts[0], AUTH_TOKEN_TYPE, true, myCallback, null);AUTH_TOKEN_TYPE取决于您的身份验证机制。对于谷歌账号来说,它只是简单的“啊”。
现在,每当你做一个经过身份验证的请求时,只需传递令牌(在头部,作为参数等),这样服务器端就知道你是谁。
https://stackoverflow.com/questions/5800402
复制相似问题