2017-07-11 10 views
0

特定の連絡先にアクセスするときにエラーが発生します。連絡先を検索する際にエラーが発生しました。

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._IDContactsContract.PhoneLookup.CONTACT_IDを変更する代わりにContactsContract.PhoneLookup.CONTACT_ID

+0

(https://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup.html ) 'ContactsContract.PhoneLookup'は3つの列しか含みません。 Contact_idはありません。この列を使用するには、連絡先と一緒に参加する必要があります –

答えて

関連する問題