gpt4 book ai didi

Android 帐户管理器 API

转载 作者:太空狗 更新时间:2023-10-29 12:58:40 25 4
gpt4 key购买 nike

我很难理解 Android AccountManager API。据我所知,我可以使用 blockingGetAuthToken 方法并指定 Android 是否应该为用户提供允许或拒绝请求的通知。另一种可能性是使用 getAuthToken 并检查是否返回 KEY_INTENT。如果是这种情况,我可以启动一个新的 Activity,用户可以在其中确认我的请求。

我的问题是我想从服务中调用这两种方法中的一种。一旦用户做出决定,是否有机会获得回调?

谢谢你的帮助

最佳答案

如果你想在用户做出决定后回调,最好使用异步版本:

AccountManager mgr = AccountManager.get(getApplicationContext());
Account[] accounts = mgr.getAccountsByType("com.mydomain");
// assert that accounts is not empty

您需要使用 AccountManagerFuture<Bundle>保存身份验证 token 的结果。这必须是异步的,因为 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
}
}

现在您可以异步请求身份验证 token :

myFuture = mgr.getAuthToken(accounts[0], AUTH_TOKEN_TYPE, true, myCallback, null);

关于Android 帐户管理器 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com