【发布时间】:2013-09-07 23:03:22
【问题描述】:
我不知道这是否是正确的问题。我们如何获取登录到 Android 中的 Google Play 商店的用户的登录 ID。这可能与否。
【问题讨论】:
标签: android google-play-services android-account
我不知道这是否是正确的问题。我们如何获取登录到 Android 中的 Google Play 商店的用户的登录 ID。这可能与否。
【问题讨论】:
标签: android google-play-services android-account
据我所知,用户必须在他的 android 手机中配置他的 gmail 帐户,然后他才能访问 Google Play。
您可以获取下面给出的帐户信息(来自Jim Blackler):
import android.accounts.Account; import android.accounts.AccountManager; import android.content.Context; /** * This class uses the AccountManager to get the primary email address of the * current user. */ public class UserEmailFetcher { static String getEmail(Context context) { AccountManager accountManager = AccountManager.get(context); Account account = getAccount(accountManager); if (account == null) { return null; } else { return account.name; } } private static Account getAccount(AccountManager accountManager) { Account[] accounts = accountManager.getAccountsByType("com.google"); Account account; if (accounts.length > 0) { account = accounts[0]; } else { account = null; } return account; } }在清单中
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
【讨论】:
如果您使用的方法不需要通过 AndroidManifest.xml 请求权限,您可以使用 Google Play Services 的 AccountPicker。
生成一个对话框,允许用户选择所需的 Google 帐户:
Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String[]{"com.google"}, false, null, null, null, null);
startActivityForResult(intent, SOME_REQUEST_CODE);
然后在您的Activity 中处理结果:
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
if (requestCode == SOME_REQUEST_CODE && resultCode == RESULT_OK) {
String emailAddress = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
// do something...
}
}
记得将compile 'com.google.android.gms:play-services-identity:8.+' 添加到您的build.gradle 文件中的依赖项中(检查here 以获取要使用的最新版本号)。
【讨论】: