0
中的顯示名稱中找到號碼我正在嘗試從聯繫人姓名中獲取號碼。爲了獲得所有者的聯繫人姓名,我使用了以下方法無法從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;
}
這種方法做工精細。它返回一個正確的名字。
在此之後,我嘗試從名稱獲取數字,但我的遊標數始終爲零。這裏是我的代碼從名稱獲取數字。
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
代碼看起來正確,但不匹配配置文件聯繫人姓名提供的名稱我不知道爲什麼。 –