2

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 を返します。

連絡先のデフォルトに設定されている番号を知りたいです。

4

1 に答える 1

1

ドキュメントに従って使用Phone.IS_SUPER_PRIMARYしてみてください

これが、所属する集約連絡先のその種のプライマリ エントリであるかどうか。「スーパー プライマリ」であるすべてのデータ レコードは、「プライマリ」でもある必要があります。たとえば、スーパー プライマリ エントリは、その種のデフォルトの連絡先値 (たとえば、連絡先に使用するデフォルトの電話番号) として解釈される場合があります。

于 2015-09-20T03:12:51.007 に答える