如果您使用 Google Play 服务,您无需任何额外权限即可获取帐户类型和帐户名称。
首先,将以下依赖项添加到 build.gradle 中:
compile 'com.google.android.gms:play-services-auth:8.4.0'
接下来,启动帐户选择器意图:
Intent intent = AccountPicker.newChooseAccountIntent(null, null,
new String[]{GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE},
false, null, null, null, null);
try {
startActivityForResult(intent, REQUEST_CODE_EMAIL);
} catch (ActivityNotFoundException e) {
// This device may not have Google Play Services installed.
// TODO: do something else
}
最后,覆盖onActivityResult http://developer.android.com/reference/android/app/Activity.html#onActivityResult(int,%20int,%20android.content.Intent)获取帐户类型和帐户名称:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_EMAIL && resultCode == RESULT_OK) {
String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
String accountType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE);
// TODO: do something with the accountName
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
source: https://stackoverflow.com/a/19444640/1048340 https://stackoverflow.com/a/19444640/1048340