gpt4 book ai didi

android - 玻璃器皿 auth : android. accounts.OperationCanceledException "Sharing credentials is not allowed: canceling."

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:45 26 4
gpt4 key购买 nike

我们正在尝试实现 GDK 玻璃器皿身份验证;已将我们的测试版 APK 上传到 Google Glass 团队并成功实现了我们的 MyGlass 登录页面。我们现在正尝试通过此处列出的步骤访问 token :https://developers.google.com/glass/develop/gdk/authentication#retrieving_accounts_on_glass

但是最后一步 String token = future.getResult().getString(AccountManager.KEY_AUTHTOKEN); 导致以下异常:

09-22 18:07:24.126: I/AccountManagerService(519): Sharing credentials is not allowed: canceling.
09-22 18:07:24.313: W/System.err(5822): android.accounts.OperationCanceledException
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$AmsTask.internalGetResult(AccountManager.java:1503)
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1531)
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1452)
09-22 18:07:24.313: W/System.err(5822): at com.mycom.app.MainActivity$5.run(MainActivity.java:234)
09-22 18:07:24.313: W/System.err(5822): at android.accounts.AccountManager$11.run(AccountManager.java:1427)
09-22 18:07:24.313: W/System.err(5822): at android.os.Handler.handleCallback(Handler.java:733)
09-22 18:07:24.313: W/System.err(5822): at android.os.Handler.dispatchMessage(Handler.java:95)
09-22 18:07:24.313: W/System.err(5822): at android.os.Looper.loop(Looper.java:149)
09-22 18:07:24.313: W/System.err(5822): at android.app.ActivityThread.main(ActivityThread.java:5061)
09-22 18:07:24.313: W/System.err(5822): at java.lang.reflect.Method.invokeNative(Native Method)
09-22 18:07:24.313: W/System.err(5822): at java.lang.reflect.Method.invoke(Method.java:515)
09-22 18:07:24.313: W/System.err(5822): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-22 18:07:24.313: W/System.err(5822): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
09-22 18:07:24.313: W/System.err(5822): at dalvik.system.NativeStart.main(Native Method)

我们试图通过 Mirror API 推送的请求是这样形成的(并返回一个 OK 状态代码):

POST https://www.googleapis.com/mirror/v1/accounts/google_user_token/com.ourcom.app.session/ourapp_username

BODY
{"authTokens":[{"type":"com.ourcom.app.session","authToken":"****************"}]}

HEADERS
{"Authorization":"Bearer ya29.iAAf********","Content-Type":"application/json;charset=utf-8"}

这是我们本地的 Glass 代码:

AccountManager accountManager = AccountManager.get(this);
// Use your Glassware's account type.
Account[] accounts = accountManager.getAccountsByType("com.ourcom.app.session");

// Your auth token type.
final String AUTH_TOKEN_TYPE = "com.ourcom.app.session";

if (accounts.length > 0) {

accountManager.getAuthToken(accounts[0], AUTH_TOKEN_TYPE, null, this, new AccountManagerCallback<Bundle>() {

@Override
public void run(AccountManagerFuture<Bundle> future) {
try {
String token = future.getResult().getString(AccountManager.KEY_AUTHTOKEN);

//do something with token

});


} catch (Exception e) {
//handle exception
//this is where we get our OperationCancelledException
e.printStackTrace();

}
}


}, null);
} else {
//handle not authed state
}

是什么导致了这种错误? Mirror POST URL 末尾的用户名是否应该匹配特定的内容,还是我们可以随意使用我们自己的东西?

最佳答案

需要检查的几件事:

  1. 您的申请包名称是否与您提交 Glassware 时提供的包名称完全匹配?
  2. 您是否通过 MyGlass 至少安装了一次您提交的 APK,而不是总是使用 adb 进行侧面加载?确保卸载您的 APK,然后通过在 MyGlass 中打开它来安装它,以便正确设置权限;从那时起,您可以通过将 APK 替换为 adb 来继续开发。

关于android - 玻璃器皿 auth : android. accounts.OperationCanceledException "Sharing credentials is not allowed: canceling.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990995/

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