所有者の完全な連絡先の詳細を取得しようとしています (私のプロフィール - たとえば 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 つだけです。システムは、「自分」プロファイルを連絡先と見なしていない可能性があります。
この問題を解決し、「自分」プロファイルの連絡先番号を取得するにはどうすればよいですか?
ありがとう