は、発信者IDのために、例えば、電話番号を検索した結果を表すContactsContract.PhoneLookup
テーブルを使用してみてください。ルックアップを実行するには、検索する番号をCONTENT_FILTER_URIに追加する必要があります。このクエリは高度に最適化されています。
PhoneLookup._ID
は、あなたが探しているものである
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,...
。
ます。またthis postで提供される解決策を試してください:AndroidのContacts
で
public static int getContactIDFromNumber(String contactNumber,Context context)
{
contactNumber = Uri.encode(contactNumber);
int phoneContactID = new Random().nextInt();
Cursor contactLookupCursor = context.getContentResolver().query(Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,contactNumber),new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup._ID}, null, null, null);
while(contactLookupCursor.moveToNext()){
phoneContactID = contactLookupCursor.getInt(contactLookupCursor.getColumnIndexOrThrow(PhoneLookup._ID));
}
contactLookupCursor.close();
return phoneContactID;
}