在
Ice Cream Sandwich获得此信息很容易,因为Android包含代表设备所有者的个人资料 – 此配置文件称为“Me”配置文件,并存储在
ContactsContract.Profile表中.只要您在AndroidManifest.xml中请求READ_PROFILE和READ_CONTACTS权限,您就可以从用户的个人资料中读取数据.
您最关心的领域是联系人的DISPLAY_NAME栏以及可能的StructuredName字段 – 用户的联系人照片也可以使用.
有一个Android Code Lab教程给出a full example of reading a user’s profile,核心位的代码是ListProfileTask.这是一个简短的片段:
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)));
...
// consume the values here
}
}
c.close();
不过不幸的是,我认为没有办法在API级别14之前获得这种数据.