`
Darar
  • 浏览: 85315 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android2.0对联系人群组的操作

 
阅读更多
// 查询所有的组 (Title/ID)
Cursor groupCursor = getContentResolver().query(ContactsContract.Groups.CONTENT_URI, 
  new String[]{ContactsContract.Groups.TITLE, ContactsContract.Groups._ID},
  null, null, null);
// 每个组的ID是唯一的,但是Title可能相同,你合并一下

1-2-5
// 查询每一组下面的所有成员
Cursor rawcontactOfGroup = getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
  new String[] { ContactsContract.Data.RAW_CONTACT_ID },
  ContactsContract.Data.MIMETYPE+" = '"+GroupMembership.CONTENT_ITEM_TYPE
  +"' AND "+ContactsContract.Data.DATA1+"="+ <你要查找的GroupID>, 
  null, null);
// 得到的是每一个拆分的联系人的rawContactId

// 用rawContactId去查合并后的所有联系人
StringBuilder inSelectionBff = new StringBuilder(RawContacts._ID).append(" IN ( 0");
for (long id : rawcontacts) { // rawcontacts是前面得到的rawContactd数组
 inSelectionBff.append(',').append(id);
}
inSelectionBff.append(')');

Cursor contactIdCursor = getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
  new String[] { ContactsContract.RawContacts.CONTACT_ID }, inSelectionBff.toString(), null, null);
Map map=new HashMap();
while (contactIdCursor.moveToNext()) {
 map.put(contactIdCursor.getLong(0), 1);
}
contactIdCursor.close();
long[] contacts = new long[map.size()];
Iterator it = map.entrySet().iterator();
int i = 0;
while (it.hasNext()) {
 Map.Entry entry = (Map.Entry) it.next();
 long key = (Long) entry.getKey();
 contacts[i] = key;
 i++;
}
}
// 这里得到的数组contacts[]就是所有合并后的联系人ID (contactId)

// 用contactId查询contact名字信息
Cursor contactNameCursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
  new String[] { ContactsContract.Contacts.DISPLAY_NAME_PRIMARY }, 
  ContactsContract.Contacts._ID, null, null);
// 得到Name

1-2-5
// 前面已经保存了contactId,用它查询得到每一个拆分的联系人(rawContactId)
Cursor rawContactCursor = getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
  new String[] { ContactsContract.RawContacts._ID }, 
  ContactsContract.RawContacts.CONTACT_ID+"="+ <你要查询的contactId>, null, null);
// 用上面得到的每个rawContactId查询电话
Cursor phoneCursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI,
  new String[] { ContactsContract.Data.DATA1 },
  ContactsContract.Data.RAW_CONTACT_ID+"=" <你要查询的rawContactId>+" AND "+
  ContactsContract.Data.MIMETYPE+" = '"+GroupMembership.CONTENT_ITEM_TYPE +"'",
  null, null);

分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java开源包1

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包11

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包2

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包3

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包6

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包5

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包10

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包4

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包8

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包7

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包9

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    java开源包101

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    Java资源包01

    jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

Global site tag (gtag.js) - Google Analytics