我希望获取所有者的完整联系方式(我的个人资料 - 例如在 Nexus 中)。我找到了适用于 API v14+ 的 ContactsContract.Profile API。
我成功地获得了显示名称,对应于我还需要联系电话。为此,我使用以下代码
private void getSelfSimNumber() {
String displayName = null;
try {
Cursor c = this.getContentResolver().query(
ContactsContract.Profile.CONTENT_URI, null, null, null,
null);
int count = c.getCount();
boolean b = c.moveToFirst();
int position = c.getPosition();
if (count == 1 && position == 0) {
displayName = c.getString(c
.getColumnIndex(ContactsContract.Profile.DISPLAY_NAME));
if (Integer
.parseInt(c.getString(c
.getColumnIndex(ContactsContract.Profile.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur = this.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
+ " = ?", new String[] { displayName },
null);
while (pCur.moveToNext()) {
String ret = c.getString(0);
String ret1 = c.getString(1);
}
pCur.close();
}
}
c.close();
} catch (Exception e) {
}
}
问题是我无法获取“我”个人资料的联系电话。如果假设我总共有 3 个联系人(包括“我”个人资料),那么我获得的可用联系人总数只有 2 个。系统可能没有将“我”个人资料视为联系人。
如何解决此问题并获取“我”个人资料的联系电话?
谢谢