【问题标题】:Retrieving account in google glass using GDK使用 GDK 在 Google Glass 中检索帐户
【发布时间】:2015-04-16 01:32:28
【问题描述】:

我的玻璃器皿需要用户帐户凭据,因此我使用 this 来验证用户身份。我成功地使用this 插入用户帐户。但是,当我检索帐户时,我得到了这个

04-16 08:57:36.580: W/System.err(22726): android.accounts.OperationCanceledException
04-16 08:57:36.580: W/System.err(22726):    at android.accounts.AccountManager$AmsTask.internalGetResult(AccountManager.java:1503)
04-16 08:57:36.580: W/System.err(22726):    at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1531)
04-16 08:57:36.580: W/System.err(22726):    at android.accounts.AccountManager$AmsTask.getResult(AccountManager.java:1452)
04-16 08:57:36.580: W/System.err(22726):    at info.genix.glass.MainActivity$1.run(MainActivity.java:108)
04-16 08:57:36.580: W/System.err(22726):    at android.accounts.AccountManager$11.run(AccountManager.java:1427)
04-16 08:57:36.580: W/System.err(22726):    at android.os.Handler.handleCallback(Handler.java:733)
04-16 08:57:36.580: W/System.err(22726):    at android.os.Handler.dispatchMessage(Handler.java:95)
04-16 08:57:36.580: W/System.err(22726):    at android.os.Looper.loop(Looper.java:149)
04-16 08:57:36.580: W/System.err(22726):    at android.app.ActivityThread.main(ActivityThread.java:5045)
04-16 08:57:36.580: W/System.err(22726):    at java.lang.reflect.Method.invokeNative(Native Method)
04-16 08:57:36.580: W/System.err(22726):    at java.lang.reflect.Method.invoke(Method.java:515)
04-16 08:57:36.580: W/System.err(22726):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-16 08:57:36.580: W/System.err(22726):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
04-16 08:57:36.580: W/System.err(22726):    at dalvik.system.NativeStart.main(Native Method)

我已经做了同样的解决方案来自 Alain here。但仍然出现同样的错误。

代码:

    AccountManager accountManager = AccountManager.get(this);
    // Use your Glassware's account type.
    Account[] accounts = accountManager.getAccountsByType(ACCOUNT_TYPE);//Already approved by google
    if (accounts != null && accounts.length > 0) {
        Log.d(TAG, "MainActivity Account");
        for (int i =0;i<accounts.length;i++)
        {     
            accountManager.getAuthToken(accounts[i], "randomType", null, this, new AccountManagerCallback<Bundle>() {
                public void run(AccountManagerFuture<Bundle> future) {
                     try {
                          Log.d(TAG, "MainActivity AccountManagerFuture");
                          String email  = future.getResult().getString("email");
                          String uname  = future.getResult().getString("uname");
                          Log.d(TAG, email+" "+dbname+" "+uname);
                          String token = future.getResult().getString(AccountManager.KEY_AUTHTOKEN);
                          Log.d("token","token :-"+ token);
                            // Use the token.
                          } catch (Exception e) {
                                // Handle exception.
                                e.printStackTrace();
                          }
                 }
            }, null);
        }
    }

【问题讨论】:

  • info.genix.glass 是您提交 Glassware 以供审核时提供的包裹名称吗?
  • 是的。 accountType 也是 info.genix.glass 并已获批准。
  • 这一行是什么:info.genix.glass.MainActivity$1.run(MainActivity.java:108)?
  • String email = future.getResult().getString("email");
  • 我明白了。你能把emailuname注释掉吗?我想看看getString上的KEY_AUTHTOKEN上是否也出现错误。

标签: java google-glass google-gdk google-mirror-api


【解决方案1】:

抱歉耽搁了。一个原因可能是您在提交 APK 以供审核时使用的证书与您用于测试的证书不同。以下是您可以尝试做的事情:

  1. 在 MyGlass 上关闭 Glassware,等待 Glass 同步并从设备中移除 Glassware。
  2. 卸载仍在您设备上的 Glassware 版本 (adb uninstall &lt;package name&gt;)。
  3. 在 MyGlass 上打开 Glassware。等待 Glass 同步并安装。
  4. 这应该已经可以工作了。如果您有新版本,您仍然可以在本地部署,但请确保使用相同的证书/密钥。

【讨论】:

  • 使用相同的证书/密钥是什么意思?
  • 我可以有一些步骤吗?
  • 当我安装我的玻璃器皿版本时,它给了我“失败”
  • 我已经完成了你所说的所有步骤,但是当我在 adb 中安装本地玻璃器皿时,它显示“正在丢失 APK 文件”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多