如何获取 Android 手机所有者的名字和姓氏?

Posted

技术标签:

【中文标题】如何获取 Android 手机所有者的名字和姓氏?【英文标题】:how to get firstname and lastname of Android phone owner? 【发布时间】:2012-10-16 14:17:51 【问题描述】:

有没有办法获取 android 手机所有者的名字和姓氏?我已经搜索了互联网,但我没有运气。我在 Stackoverlow 中偶然发现了this 问题,但这是获取所有联系人的名字和姓氏。我需要的只是获取所有者的名字和姓氏。

【问题讨论】:

【参考方案1】:

我认为这仅适用于 ICS - 查看此以获取更多信息 http://android-codelabs.appspot.com/resources/tutorials/contactsprovider/ex1.html

Cursor c = activity.getContentResolver().query(ContactsContract.Profile.CONTENT_URI, null, null, null, null);
int count = c.getCount();
String[] columnNames = c.getColumnNames();
boolean b = c.moveToFirst();
int position = c.getPosition();
if (count == 1 && position == 0) 
    for (int j = 0; j < columnNames.length; j++) 
        String columnName = columnNames[j];
        String columnValue = c.getString(c.getColumnIndex(columnName)));
        ...
        //Use the values
    

c.close();

Android 包含一个代表设备所有者的个人配置文件 - 此配置文件称为“我”配置文件,存储在 ContactsContract.Profile 表中。您可以从用户的个人资料中读取数据,只要您

在您的 AndroidManifest.xml 中添加 READ_PROFILE 和 READ_CONTACTS 权限。

与您最相关的字段是联系人中的 DISPLAY_NAME 列,可能还有 StructuredName 字段

【讨论】:

至少,如果它是 ICS,我该如何执行此代码? ContactsContract.Profile.CONTENT_URI 给了我错误。 您必须在清单中将 android:targetSdkVersion="16" 添加到您的 uses-sdk,因为它是 ICS 及更高版本 它对你有用吗?或者您需要更多帮助来设置它吗?【参考方案2】:

试试这个:

final AccountManager manager = AccountManager.get(this);
final Account[] accounts = manager.getAccountsByType("com.google");
final int size = accounts.length;
String[] names = new String[size];
for (int i = 0; i < size; i++) 
  names[i] = accounts[i].name;

【讨论】:

【参考方案3】:

我已经搜索过这个东西并获得了一些喜欢希望它对你有帮助。

How can I get the first name (or full name) of the user of the phone?

Android - Get UserData using AccountManager / First and Last name of the phone owner

【讨论】:

以上是关于如何获取 Android 手机所有者的名字和姓氏?的主要内容,如果未能解决你的问题,请参考以下文章

Android 内容提供程序。如何通过通讯录中的一个请求获取所有数据

如何在 Mailchimp 中仅获取成员字段名称(电子邮件地址、名字、姓氏)

如何从联系信息中获取名字和姓氏?

获取联系人的名字和姓氏而不是单个显示名?

Wordpress:如何在表格查询中获取用户的名字和姓氏?

如何使用 Java API 从 keycloak 获取用户的名字、姓氏和属性?