android authtype="1",Glassware auth:android.accounts.OperationCanceledException“不允许共享凭据:取消。”...

但是最后一步,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)

我们试图通过镜子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"}

这是我们当地的玻璃代码:

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() {

@Override

public void run(AccountManagerFuture 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

}

什么可能导致这种错误?镜像POST URL的结尾处的用户名是否应该匹配某些特定的内容,或者我们可以自由使用我们自己的内容?

2014-09-23

Peter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值