我正在编写一个同时使用 Google 任务和日历 API 的 Android 应用程序。通过任务进行身份验证非常有效。但是,在访问日历 API 时,我看到一个屏幕显示“与 Google 服务通信时出现问题。请稍后再试。” 标题为“无法登录”。如果我单击下一步,登录...屏幕会显示大约半秒钟,然后我会被发送回“出现问题”屏幕。
我对日历 API 进行身份验证的代码如下。请注意,工作正常的 Tasks API 的代码几乎相同。
GoogleAccountManager google_manager = new GoogleAccountManager(this);
Account[] accounts = google_manager.getAccounts();
Account my_account;
if (accounts.length > 1) my_account = selectWhichAccount(accounts);
else {
if (accounts.length == 0) display_no_account_dialog();
Log.v("account",accounts[0].toString());
my_account = accounts[0];
}
final String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/calendar";
Log.v("schedule","getting auth token");
google_manager.manager.getAuthToken(my_account, AUTH_TOKEN_TYPE, null, this, new AccountManagerCallback<Bundle>() {
@Override
public void run(AccountManagerFuture<Bundle> future) {
try {
String token = future.getResult().getString(AccountManager.KEY_AUTHTOKEN);
Log.d("schedule","starting scheduletask");
start_ScheduleTask(t, token);
} catch (OperationCanceledException e) {
Log.v("accounts","denied access to account");
handleException(e);
} catch (Exception e) {
handleException(e);
}
}
}, null);