Java 查找联系人时出错
当我想访问特定联系人的帐户时,我遇到了一个错误 java.lang.IllegalArgumentException:列联系人id无效 以下是示例代码:Java 查找联系人时出错,java,android,android-contacts,Java,Android,Android Contacts,当我想访问特定联系人的帐户时,我遇到了一个错误 java.lang.IllegalArgumentException:列联系人id无效 以下是示例代码: String number = "0877777777"; Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number)); String[] p
String number = "0877777777";
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
String[] projection = new String[]{ ContactsContract.PhoneLookup.CONTACT_ID };
Cursor cur = getActivity().getContentResolver().query(uri, projection, null, null, null);
// if other contacts have that phone as well, we simply take the first contact found.
if (cur != null && cur.moveToNext()) {
Long id = cur.getLong(0);
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri contactUri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(id));
intent.setData(contactUri);
startActivity(intent);
cur.close();
}
错误在投影中,但我不确定如何修复它。
该号码保存在测试手机上。
任何关于解决问题的建议都将不胜感激。使用
contacts contract.commondatatypes.Phone.CONTENT\u URI
而不是contacts contract.PhoneLookup.CONTACT\u ID
使用contacts contract.commondatatypes.Phone.CONTENT\u URI
而不是contacts contacts contract.PhoneLookup.ID
将contacts contract.PhoneLookup.CONTACT\u ID
更改为contacts contract.PhoneLookup.\u ID
PhoneLookup
中的\u ID
仅指联系人ID
请参见此处:只需将
联系人合同.电话查询.联系人ID
更改为联系人合同.电话查询.\u ID
PhoneLookup
中的\u ID
仅指联系人ID
请参见此处:来自
联系人合同。PhoneLookup
仅包含3列。那里没有联系人。要使用此列,您应该加入来自联系人合同的联系人。PhoneLookup
仅包含3列。那里没有联系人。要使用此专栏,您应该加入Contacts,它将为我提供一个android.net.Uri。我将如何在上面的代码中实现它?这将给我一个android.net.Uri。我将如何在上面的代码中实现这一点?