如何从Android中的特定联系人处获取电话号码?

如何从Android中的特定联系人处获取电话号码?,android,Android,好的,我正在读的书希望我给一个特定的人打电话 我可以很好地检索联系人,这是整个“获取联系人ID以查找电话号码位”的问题 每次我选择联系人时,应用程序都会崩溃 我想我不知道如何正确导航到联系人ID 我对安卓相当陌生,现在我完全迷路了,我还没能在这里找到一个对我有帮助的解决方案 相关代码: }else if(requestCode == REQUEST_CONTACT) { Uri contactsURI = data.getData(); String[]

好的,我正在读的书希望我给一个特定的人打电话

我可以很好地检索联系人,这是整个“获取联系人ID以查找电话号码位”的问题

每次我选择联系人时,应用程序都会崩溃

我想我不知道如何正确导航到联系人ID

我对安卓相当陌生,现在我完全迷路了,我还没能在这里找到一个对我有帮助的解决方案

相关代码:

   }else if(requestCode == REQUEST_CONTACT) {
        Uri contactsURI = data.getData();

        String[] queryFields = new String[]{
                ContactsContract.Contacts.DISPLAY_NAME
        };


        //Perform your query - the contactURI is like a "where"
        //clause here
        Cursor c = getActivity().getContentResolver().query(contactsURI, queryFields, null, null, null);


        //Double-check that you actually got results
        if (c.getCount() == 0) {
            c.close();
            return;
        }
        contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));

        //Pull out the first column of the first row of data
        //that is your suspects name
        c.moveToFirst();

        String suspect = c.getString(0);


        mCrime.setmSuspect(suspect);
        mSuspectButton.setText(suspect);
        c.close();

    }



}
我崩溃是因为上面代码的这一部分:

contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));

你必须先打电话

c.moveToFirst();
然后


logcatIt中的错误是什么?表示光标超出范围索引。请参阅下面的答案,检查它是否有效。
contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID))