特定の連絡先にアクセスするときにエラーが発生します。連絡先を検索する際にエラーが発生しました。
java.lang.IllegalArgumentExceptionが:無効な列がここ
をcontact_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();
}
エラーが投影であるが、私はそれを修正する方法がわからないです。 番号はテスト中の電話機に保存されます。 問題を解決するためのアドバイスをいただければ幸いです。ただ、ContactsContract.PhoneLookup._ID
にContactsContract.PhoneLookup.CONTACT_ID
を変更する代わりにContactsContract.PhoneLookup.CONTACT_ID
(https://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup.html ) 'ContactsContract.PhoneLookup'は3つの列しか含みません。 Contact_idはありません。この列を使用するには、連絡先と一緒に参加する必要があります –