在我从内置活动中检索到他们的ID号码后,我正在尝试获取联系人的电话号码.但是,每当我在下面的代码中使用光标查询数据库时 - 即使有我选择的联系人的手机号码,我也会返回零行.
任何人都可以指出我更好的方向或显示如何获取联系人的电话号码获得他们的用户ID后的一个例子?
我的代码:
private Runnable getSMSRunnable() {
return new Runnable() {
public void run() {
Intent i = new Intent(Intent.ACTION_PICK,
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(i, CONTACTS_REQUEST_CODE);
}
};
}
Run Code Online (Sandbox Code Playgroud)
返回Log输出
content://com.android.contacts/data/6802
Run Code Online (Sandbox Code Playgroud)
从中我将ID(6802)传递给一个方法,该方法旨在从具有给定类型的ID返回电话号码(在本例中为ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
public static String getContactPhoneNumberByPhoneType(Context context, long contactId, int type) {
String phoneNumber = null;
String[] whereArgs = new String[] { String.valueOf(contactId), String.valueOf(type) };
Log.d(TAG, String.valueOf(contactId));
Cursor cursor = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ? and "
+ ContactsContract.CommonDataKinds.Phone.TYPE + " = ?", whereArgs, null);
int phoneNumberIndex = …Run Code Online (Sandbox Code Playgroud)