6

我不知道这是否是正确的问题。我们如何获取登录到 Android 中的 Google Play 商店的用户的登录 ID。这可能与否。

4

2 回答 2

7

据我所知,用户必须在他的 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" />
于 2013-09-04T12:37:57.257 回答
7

如果您使用不需要通过AndroidManifest.xml您请求许可的方法,则可以使用 Google Play 服务的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文件中的依赖项(在此处查看要使用的最新版本号)。

于 2015-10-12T04:10:21.883 回答