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

时间:2015-04-16 15:31:16

标签: java android google-play google-play-services

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

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

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

感谢。

2 个答案:

答案 0 :(得分:12)

您应该使用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();

答案 1 :(得分:3)

在Android中猜测用户性别的另一种可能更可靠的方法是使用用户的电子邮件地址点击第三方API,然后让API在电子邮件字符串中查找名字,将其与一个名字的数据库,然后给你一个性别+置信水平。我使用了“性别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获取密钥,并点击此链接查看每个电子邮件地址:

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

此API会返回性别和置信水平,我相信还有其他人会做同样的事情。