我正在使用此方法验证Google云端硬盘: https://developers.google.com/drive/quickstart-android
选择帐户效果很好。现在我想在prefs中存储用户凭据。我可以保存帐户名称,然后将其恢复。我想重用凭据以备将来使用。
是否可以使用Google Play服务和GoogleAccountCredential来实现这一目标?
这是我的情景:
现在我关闭了我的应用并再次运行。
我正在尝试这样的事情:
credential = GoogleAccountCredential.usingOAuth2(GoogleDriveBackup.this, DriveScopes.DRIVE_FILE);
//use saved account (stored[0] is OK)
credential.setSelectedAccountName(stored[0]);
credential.getToken();
service = getDriveService(credential);
其中:
private Drive getDriveService(GoogleAccountCredential credential) {
return new Drive.Builder(AndroidHttp.newCompatibleTransport(),
new GsonFactory(), credential).build();
}
这不起作用。我从GoogleJsonResponseExcelption获得了500个内部服务器错误。使用Google Play Services for Android的最佳方法是什么。
答案 0 :(得分:7)
如果您要做的是避免用户必须重新授权您的应用,那么您不需要保存凭据对象。您需要做的就是保存用户使用帐户选择器选择的帐户。
下次使用您的应用时重新创建凭据对象时,播放服务将知道用户之前已授予您访问权限,您不必显示身份验证意图(在抛出的异常中可用)
您需要为用户提供一种更改其选择的帐户的方式。