0

連絡先の番号を知っているグループ IDを取得する方法

このクエリ内の別のクエリである必要があると思いますが、その方法がわかりません

ここで私が試したこと:

String[] projection = new String[]{ ContactsContract.Groups._ID };

Cursor cursor = getContentResolver().query(
        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
        projection,
        ContactsContract.CommonDataKinds.Phone.NUMBER +" = "+ number,
        null,
        null);

cursor.moveToNext();
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Groups._ID));

(クエリは何も返しません)

手伝ってくれてありがとう!

4

1 に答える 1

3

Groups._IDdataset 内にそのような列がないため、クエリは何も返しませんCommonDataKinds.Phone

次のようなことを試してください:

String sPhoneNumber = "+48123456789";    
Cursor cursor = getApplicationContext().getContentResolver().query(
                Data.CONTENT_URI, new String[] {CommonDataKinds.GroupMembership._ID}, 
                ContactsContract.CommonDataKinds.Phone.NUMBER+"='"+sPhoneNumber+"'", null, null);

ここsPhoneNumberで、目的の電話番号を含む文字列です。次の場合は、カーソルが 0 を返す場合があることに注意してください。

  1. +49123456789電話番号がどのようにフォーマットされているか、つまり、番号がこのようにフォーマットされているときに、特定の番号の連絡先のグループ ID を検索したい場合+49 123 456 789。空白はこれを完全に異なるものにしていStringます。
  2. あなたの連絡先はどのグループにも属していません。

また、主に連絡先が複数のグループに属している場合、カーソルはより多くの結果を返すことができます。

于 2013-09-23T06:38:35.277 に答える