Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找联系人时出错_Java_Android_Android Contacts - Fatal编程技术网

Java 查找联系人时出错

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

当我想访问特定联系人的帐户时,我遇到了一个错误

java.lang.IllegalArgumentException:列联系人id无效

以下是示例代码:

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。我将如何在上面的代码中实现这一点?