ios-获取通讯录中的所有群组名字

问题描述

获取通讯录中的所有群组名字

怎么样获取保存在通讯录中的所有群组名字?相关代码:

NSMutableArray *list = [NSMutableArray array];
ABAddressBookRef myAddressBook = ABAddressBookCreate();
CFArrayRef allSources = ABAddressBookCopyArrayOfAllGroups(myAddressBook);

list = [NSMutableArray arrayWithArray: (__bridge NSArray*) allSources];

NSLog(@"GROUPS %@",[list objectAtIndex:0]);

谢谢

解决方案

使用ABRecordCopyCompositeName()功能:

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
if (addressBook != NULL) {
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
        if (granted) {
            CFArrayRef allGroups = ABAddressBookCopyArrayOfAllGroups(addressBook);
            if (allGroups != NULL) {
                NSMutableArray *names = [NSMutableArray array];
                for (int i = 0; i < CFArrayGetCount(allGroups); i++) {
                    ABRecordRef group = CFArrayGetValueAtIndex(allGroups, i);
                    CFStringRef name = ABRecordCopyCompositeName(group);
                    [names addObject:(__bridge NSString *)name];
                    CFRelease(name);
                }
                NSLog(@"names = %@", names);
                CFRelease(allGroups);
            }
        }
        CFRelease(addressBook);
    });
}
时间: 2024-08-28 18:42:33

ios-获取通讯录中的所有群组名字的相关文章

详解iOS获取通讯录的4种方式_IOS

本文实例为大家分享了iOS获取通讯录的4种方式,供大家参考,具体内容如下 使用场景 一些App通过手机号码来推荐好友,如 微博.支付宝 首先客户端会获取通讯录中的所有手机号然后将这些手机号提交到App服务器中,服务器会查找每个手机号对应的App账号如QQ号码返回到客户端,然后客户端根据服务器返回的账号列表来推荐好友. 获取联系人方式 方案一:AddressBookUI.framework框架 提供了联系人列表界面.联系人详情界面.添加联系人界面等 一般用于选择联系人 方案二:AddressBoo

IOS获取通讯录联系人信息

IOS获取系统通讯录联系人信息 一.权限注册 随着apple对用户隐私的越来越重视,IOS系统的权限设置也更加严格,在获取系统通讯录之前,我们必须获得用户的授权.权限申请代码示例如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31     //这个变量用于记录授权是否成功,即用户是否允许我们访问通讯录     int __block tip=0;     //声明一个通讯

环信2.2.5 从服务器端获取当前用户的所有群组信息错误

问题描述 调用EMGroupManager.getInstance().getGroupsFromServer()代码返回List<EMGroup>,有时候每一个EMGroup对象中的getAffiliationsCount()方法 获取群组成员人数返回都是-1,请各位大神指教 解决方案 在服务端获取群组是在子线程中获取的吗,群对象是在本地获取的还是在服务器获取的,使用这个获取看下//根据群聊ID从服务器获取群聊基本信息 EMGroup group =EMGroupManager.getIns

ios获得通讯录中联系人的所有属性

ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(addressBook); for(int i = 0; i < CFArrayGetCount(results); i++) { ABRecordRef person = CFArrayGetValueAtIndex(results, i); //读取firstname NSSt

我IOS集成环信SDK以后,公有群组列表获取不到,为什么?

问题描述 解决方案 你是怎么获取的?什么版本sdk?解决方案二:我是2.1.7的版本:方法一:    [[EaseMob sharedInstance].chatManager asyncFetchAllPublicGroups];方法二:[[EaseMob sharedInstance].chatManager asyncFetchAllPublicGroupsWithCompletion:^(NSArray *groups, EMError *error) {        if (!err

紧急求助,一个用户获取不到任何群组,是BUG吗?

问题描述 有一个用户A,看环信后台群组成员管理看到已经是成员了,但是就是获取不到任何群组,这是什么原因? 解决方案 用rest获取一下,看看这个用户A是不是群组内的成员,以rest为准 http://www.easemob.com/docs/rest/groups/#users解决方案二:REST接口返回 是有群组的.而且环信管理员去后台看也是有的. 现在的问题是WEB IM 中不显示群组, 好友列表正常. 应该很明确是BUG, 请帮忙处理.解决方案三:这个BUG 太严重了,请技术人员支持.解决

Skype 正式为 iOS 和 Android 用户推出移动端群组视频聊天功能

上个月,为了庆祝 Skype 免费视频聊天功能发布 10 周年,Skype 曾宣布将为几大主流智能手机平台推出移动端的群组视频聊天功能.今天,Skype 正式为 iOS 和 Android 用户推出了移动端的群组视频聊天功能.不过目前只有北美和西欧国家地区的用户能使用上这项功能.不久后将会在全球其它地方陆续推出这项功能. iOS 和 Android 端的 Skype 群组视频聊天功能最多支持 25 人同时视频聊天. 6年 前,Skype 就已经开始支持移动端的一对一视频聊天功能了.此前,web

为什么有时候group.getGroupName()获取到不是群组name却是一段数字!

问题描述 如题所说,有时候getGroupName()获取到的不是群组名称而是一串数字,而且这串数字并不是群组id!比如说04-06 02:57:37.049: I/System.out(5035): groupName=1459845953326 输出的是一串数字! 解决方案 需要从服务器获取单个群组信息保存本地解决方案二://根据群聊ID从服务器获取群聊基本信息 EMGroup group =EMGroupManager.getInstance().getGroupFromServer(gr

为什么我获取不到群组的owner?

问题描述 为什么我获取不到群组的owner? 解决方案 获取与我有关的群组的时候只能看到群组ID,和群组名称,只有调用群详情的方法才能看到,调用群详情的方法,能看到描述和owner.