【发布时间】: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");
-
我明白了。你能把
email和uname注释掉吗?我想看看getString上的KEY_AUTHTOKEN上是否也出现错误。
标签: java google-glass google-gdk google-mirror-api