Android : 如何获取用户的性别和年龄?

Android : how to get the gender and age of the user?

我有一个 Android 应用程序,我想根据用户的性别和年龄自动设置它。

获取用户年龄和性别的不同方法有哪些? (符合 Google 播放政策)

例如,有没有办法通过 Google Play 服务获取这些信息?

谢谢。

您应该使用 interface Person,您将拥有有关用户的所有信息。 (通过 getGender()getBirthday()(或 getAgeRange()

编辑: 例如,对于使用 getGender(),您可以围绕此做一些事情:

 GoogleApiClient client = new GoogleApiClient.Builder(this)
         .addApi(Plus.API)
         .addScope(Plus.SCOPE_PLUS_LOGIN)
         .setAccountName("users.account.name@gmail.com")
         .build();


client.connect();
Person.Gender gender;
Person personProfile = Plus.PeopleApi.getCurrentPerson(client);

if (person.hasGender()) // it's not guaranteed
          gender = person.getGender();

在 Android 中猜测用户性别的另一种可能更可靠的方法是使用用户的电子邮件地址攻击第三方 API,然后让 API 在电子邮件字符串中查找名字,将其与姓名数据库进行匹配,然后 return 为您提供性别 + 置信度。我用的是"Gender API"(无隶属关系)。

只需添加到 AndroidManifest:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

然后获取您用户的 Gmail 地址:

Pattern pattern = Patterns.EMAIL_ADDRESS; 
Account[] accounts = AccountManager.get(context).getAccounts();
for (Account account : accounts) {
if (pattern.matcher(account.name).matches()) {

     String emailAddress = account.name
   // grab each of your user's email addresses


 }
}

然后,如果你想使用我用过的 API,从 gender-api.com 获取密钥,然后为每个电子邮件地址点击 link:

https://gender-api.com/get?email=ANDROID_USER_EMAIL_ADDRESS&key=<YOUR_PRIVATE_KEY>

这 API return 的性别和自信程度,我相信还有其他人在做同样的事情。