我使用的代碼如Authenticating against App Engine from an Android app中所解釋的那樣在我的GAE應用上啓用Google帳戶身份驗證。問題是,一旦我允許我的android應用程序訪問一個帳戶,我無法再使用相同的帳戶重複該過程(用於測試)。我已經試過:撤銷Android應用上的Google帳戶訪問確認
- invalidateAuthToken()
- 清除數據(設置=>應用程序=>管理應用程序)
- 卸載該應用
,但應用程序仍然獲得訪問該帳戶。以下是我使用的代碼片段顯示用戶確認的意圖:
private class GetAuthTokenCallback implements AccountManagerCallback<Bundle> {
public void run(AccountManagerFuture<Bundle> result) {
Bundle bundle;
try {
bundle = result.getResult();
Intent intent = (Intent)bundle.get(AccountManager.KEY_INTENT);
if(intent != null) {
// User input required
startActivity(intent);
} else {
onGetAuthToken(bundle);
}
} catch (OperationCanceledException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AuthenticatorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
有沒有人遇到過這個問題?任何想法如何強制下一次運行確認?
我鏈接到這些問題* [你如何強制AccountManager顯示「訪問請求」後一個屏幕用戶已經允許訪問?](http://stackoverflow.com/questions/6852256/how-do-you-force-accountmanager-to-show-the-access-request-screen-after-a-user)* [從AccountManager憑證訪問]取消授權和應用程序(http://stackoverflow.com/questions/8206036/unauthorize-and-app-from-accountmanager-credential-access),其中一個有你的答案。謝謝 – blue
對,如果你有一個根植設備(或者在模擬器上運行),清理授權表將會起作用。你可能會更加微妙,但只刪除自己的應用程序的條目。 –