Я использую ниже код для получения номера входящего звонка, который работает нормально.получение контактного лица с использованием номера телефона не работает
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
В следующем шаге я попытался получить contatc имя с помощью метода getContactName(mContext,number)
:
public static String getContactName(Context context, String phoneNumber) {
ContentResolver cr = context.getContentResolver();
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
Cursor cursor = cr.query(uri, new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null);
if (cursor == null) {
return null;
}
String contactName = null;
if(cursor.moveToFirst()) {
contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
}
if(cursor != null && !cursor.isClosed()) {
cursor.close();
}
return contactName;
}
но метод всегда возвращает null
(мой входящий вызов один из моих контактов и его номер и number
струна точно так же. Я не знаю, почему этот код не работает. Я очень ценю любую помощь, которую вы можете предоставить.
Спасибо @chengsam. Я добавил это раньше. Если мы не добавим это разрешение, приложение будет разбито из-за исключения безопасности. –
Вы можете обратиться к этому [вопросу] (http://stackoverflow.com/questions/36700475/getting-null-value-while-retrieving-the-contact-name-from-contact-email) – chengsam