Android联系人让我发疯! 此代码返回空游标,但联系人存在!任何人都可以看到我不能做到的事情吗?
ContentResolver cr = getContentResolver();
String query = ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = " +pickedID;
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,query , null, null);
pCur.moveToFirst();
while (pCur.moveToNext()) {
contactPhone.setText(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA)));
}
pCur.close();
query = ContactsContract.CommonDataKinds.Email.CONTACT_ID +" = " +pickedID;
pCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,query , null, null);
pCur.moveToFirst();
while (pCur.moveToNext()) {
contactPhone.setText(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)));
}
pCur.close();
答案 0 :(得分:2)
我对null游标有同样的问题,我的问题是,我忘了添加
Manifest.xml
文件中的以下代码行:
uses-permission android:name="android.permission.READ_CONTACTS"
答案 1 :(得分:1)
我不确定这是否是问题的全部原因,但是你正在调用
pCur.moveToFirst();
将光标移动到第一个条目。然后你马上打电话
while (pCur.moveToNext())
将光标移动到第二个条目。所以你正在跳过第一个条目。
忽略pCur.moveToFirst();
,然后离开while循环,看看是否有帮助。
答案 2 :(得分:0)
我认为问题的根源是您最初检索联系人列表的方式。
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,query , null, null);
应该是..
Cursor pCur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);