如何获得Android手机拥有者的名字和姓氏?

时间:2012-10-26 10:05:45

标签: android contacts

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

3 个答案:

答案 0 :(得分:23)

我认为这仅适用于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权限。

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

答案 1 :(得分:3)

试试这个:

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;
}

答案 2 :(得分:3)