Я пытаюсь получить номер от имени контакта. Для получения контактного имени владельца я использовал следующий метод.Невозможно найти номер из отображаемого имени в android
public String getName() {
String name = "";
Cursor c = this.getContentResolver().query(ContactsContract.Profile.CONTENT_URI, null, null, null, null);
int count = c.getCount();
String[] columnNames = c.getColumnNames();
boolean b = c.moveToFirst();
int position = c.getPosition();
if (count == 1 && position == 0) {
name = c.getString(c.getColumnIndex("display_name"));
}
c.close();
return name;
}
Этот метод работает нормально. Он возвращает правильное имя.
После этого я пытаюсь получить Number из имени, но число курсоров всегда равно нулю. вот мой код, чтобы получить номер от имени.
public String getNumber(String name) {
String number = null;
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
"display_name = '" + name + "'", null, null);
if (cursor.moveToFirst()) {
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
while (phones.moveToNext()) {
number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phones.close();
}
cursor.close();
return number;
}
Я также добавил разрешения в файле манифеста
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_PROFILE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
Я не знаю, где я сделал ошибку. Пожалуйста помоги.
нет никакой разницы между этой должностью и вашим ответ предыдущей ссылкой http://stackoverflow.com/a/40846529/7007823 –
Проверьте это http://stackoverflow.com/a/11405571/7007823 – UserDev
код выглядит правильно, но не совпадает с именем профиля профиля с указанным именем. Я не знаю почему. –