rawcontactID を取得するために phonenumber をクエリしたいと思います。
連絡先について私が知っているのは、指定された電話番号だけですが、私の機能では rawcontactID が必要です。動作するコードを取得しましたが、今では 2 つの個別のクエリを使用しました。私がしたいのは、クエリ時間を節約するためだけに両方を実行できる1つのクエリです。
私のコード:
    Uri uri = Uri.withAppendedPath(Phone.CONTENT_FILTER_URI, Uri.encode(phoneNumber));       
    String[] columns = new String[]{Phone.CONTACT_ID, Phone.DISPLAY_NAME, Phone.NUMBER, Phone._ID };     
    Cursor cursor = contentResolver.query(uri, columns, null, null, null); 
if(cursor!=null) { 
    int clenght = cursor.getCount();
    while(cursor.moveToNext()){ 
     //contactName = cursor.getString(cursor.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME)); 
     id = cursor.getString(cursor.getColumnIndex(Phone.CONTACT_ID)); 
    } 
    cursor.close(); 
}
Cursor pCur = contentResolver.query(ContactsContract.Data.CONTENT_URI, new String[]{ContactsContract.Data.RAW_CONTACT_ID}, ContactsContract.Data.CONTACT_ID+" = "+ id, null, null); 
if(pCur!=null) { 
    int clenght = pCur.getCount();
    while(pCur.moveToNext()){ 
     //contactName = cursor.getString(cursor.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME)); 
     id = pCur.getString(pCur.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID)); 
    } 
    pCur.close(); 
}
前もって感謝します
編集:
上記のコードは正常に動作しますが、多数の連絡先の速度を上げることをまだ探しています。したがって、誰かが私のクエリを組み合わせるソリューションを持ってきたら、賞金をあげます。