我在我的应用中使用Google Drive REST api v3。当应用程序启动时,用户将登录他/她的Google帐户并获得身份验证。 当用户启动此意图时
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(googleDriveFileUrl));
然后让用户从启动器中选择Google Drive应用,现在登录对话框弹出并要求再次登录。 是否可以让用户使用相同的帐户,以便新活动不会再次请求登录?
答案 0 :(得分:1)
validate帐户authentication有两种方式:
GoogleApiClient GAC = new GoogleApiClient.Builder(context)
//.setAccountName(email)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(...)
.addOnConnectionFailedListener(...)
.build();
Google Play服务会弹出account picker对话框,供您选择有效帐户或创建新帐户。
GoogleApiClient GAC = new GoogleApiClient.Builder(context)
.setAccountName(email)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(...)
.addOnConnectionFailedListener(...)
.build();
您必须通过帐户选择器使用其中一个已注册的设备:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
...
static final int REQ_ACCPICK = 999;
...
startActivityForResult(AccountPicker.newChooseAccountIntent(null, null,
new String[]{GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE}, true, null, null, null, null), REQ_ACCPICK);
...
@Override
protected void onActivityResult(int request, int rslt, Intent data) {
if (
request == REQ_ACCPICK &&
rslt == RESULT_OK &&
data != null && data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME) != null
)
email = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
这是一个示例演示应用,其中讨论require sccount pick
:https://github.com/seanpjanson/GDAADemo/blob/master/app/src/main/java/com/spjanson/gdaademo/MainActivity.java