我有一系列电话号码,我想从联系人数据库中获取相应的联系人姓名.
在电话号码数组中,我还有一些以前未保存到联系人数据库的号码.例如;
我有包含上面显示的电话号码的数组,即phoneArr.
int size=phoneArr.size();
if(size>0){
Cursor[] cursors=new Cursor[size];
for(int i=0;i<size;i++){
Uri contactUri1 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneArr.get(i)));
cursors[i] = getContentResolver().query(contactUri1, PEOPLE_PROJECTION, null, null, " _id asc limit 1");
}
Cursor phones=new MergeCursor(cursors);
Run Code Online (Sandbox Code Playgroud)
phones.getCount()在上面的场景中返回2.当电话号码没有出现在联系人列表中时,光标变空,并且当我合并它们时,它根本没有任何贡献.我想要的是有一个光标如下
光标手机 - > {Tim,Jim,1111111}
我想我可以通过手动添加行来执行此操作,如下所示:
Uri contactUri1 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneArr.get(i)));
cursors[i] = getContentResolver().query(contactUri1, PEOPLE_PROJECTION, null, null, " _id asc limit 1");
if(cursors[i].getCount()==0)
// add the phone number manually to the cursor
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
这是PEOPLE_PROJECTION
private static final String[] …Run Code Online (Sandbox Code Playgroud)