Я просто использую простую логику, чтобы добраться до имени контакта (вы все можете увидеть в приведенном ниже коде, используя оператор if). Но это, если оператор не работает. Проблема в том, что я сравниваю строку s1, которая является контактным лицомимя с s2, которое я получаю из конструктора, и я в высшей степени уверен, что s1 содержит то же самое, что и s2.So, который запускает первый конструктор или выполняет в фоновом режиме?. Если doInBackground, то мне нужно сделать параметр глобальным, а не передаватьв этом методе.
private class findContacts extends AsyncTask<Void, String, String> {
String contactName;
public findContacts(String contactName) {
this.contactName = contactName;
}
@Override
protected String doInBackground(Void... voids) {
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
null,
null,
null);
String name = null,phoneNumber=null;
if (phones != null) {
while (phones.moveToNext())
{
name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
System.out.println("1st name "+name.toLowerCase()+" 2nd name"+contactName.toLowerCase()+" both are same ?"+name.toLowerCase().contains(contactName.toLowerCase()));
if (name.toLowerCase().equals(contactName.toLowerCase())){ // The problem lies here
System.out.println(name+" "+phoneNumber);
phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}else {
// newPhoneNum="123456";
}
}
phones.close();
}
return phoneNumber;
}
