我想让用户登录一次以使用Google Drive SDK v2,并且每次启动应用时都不要问他。我怎么能这样做,因为GoogleAccountCredential
没有实现Serializable
和Parcelable
将其保存在持久存储中?如何检查用户是否已登录?
现在我必须要求用户每次启动应用程序时都会登录:
GoogleAccountCredential googleDriveCredential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE_APPDATA);
startActivityForResult(googleDriveCredential.newChooseAccountIntent(), ACTION_LINK_GOOGLE_DRIVE);
我更喜欢在Dropbox Android SDK中完成它:
DbxAccountManager accountManager = DropboxAccountManagerHolder.get().getAccountManager();
if (!accountManager.hasLinkedAccount())
DropboxAccountManagerHolder.get().getAccountManager()
.startLink(this, ACTION_LINK_DROPBOX);
答案 0 :(得分:0)
似乎是自动完成的:https://developers.google.com/drive/examples/android。 问题是检查它是否已登录。为此,您必须获取凭证令牌并处理异常:
使用特殊的Android身份验证实用程序使用云服务时: 如果用户已经授权应用程序Drive服务 将被授权并按预期工作。如果用户没有 授权使用Drive服务的应用程序将抛出一个 UserRecoverableAuthException包含可用于的Intent 向用户显示授权授权对话框。
try {
GoogleAccountCredential credential =
GoogleAccountCredential.usingOAuth2(mContext, DriveScopes.DRIVE_FILE);
credential.setSelectedAccountName(mAccount.name);
// Trying to get a token right away to see if we are authorized
credential.getToken();