相关疑难解决方法(0)

手动将行添加到Cursor中

我有一系列电话号码,我想从联系人数据库中获取相应的联系人姓名.

在电话号码数组中,我还有一些以前未保存到联系人数据库的号码.例如;

  • 3333333 - >蒂姆
  • 5555555 - >吉姆
  • 1111111 - >未知

我有包含上面显示的电话号码的数组,即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)

android row cursor manual

17
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

cursor ×1

manual ×1

row ×1