Android で連絡先のプライマリ番号を取得しようとしていますが、目的の結果が得られません。
次のコードを使用する
cursor = getActivity().getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
phoneIdx = cursor.getColumnIndex(Phone.DATA);
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() == false) {
String phoneNumber = cursor.getString(phoneIdx);
Log.d(TAG,"Number:::"+ phoneNumber);
int primary = cursor.getColumnIndex(Phone.IS_PRIMARY);
Log.d(TAG, "primary value:::"+ primary);
allNumbers.add(phoneNumber);
cursor.moveToNext();
}
}
2つの番号と連絡があります。それらの 1 つは、番号を長く保持し、「デフォルトとして設定」を選択することで、プライマリに設定されます。上記の連絡先でこのコードを実行すると、PHONE.IS_PRIMARY は両方の番号に対して 45 を返します。
連絡先のデフォルトに設定されている番号を知りたいです。