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