如题所述
第1个回答 2022-07-15
ANCS是Apple Notification Center Service的简称,中文为苹果通知中心服务。
ANCS是苹果让周边蓝牙设备(手环、手表等)可以通过低功耗蓝牙访问IOS设备(iphone、ipad等)上的各类通知提供的一种简单方便的机制。
ANCS是基于BLE协议中的通用属性协议(Generic Attribute Profile,GATT)协议实现的,他是GATT协议的一个子集。在ANCS协议中,IOS设备作为gatt-server,而周边设备作为gatt client来连接和使用server提供的其他services。
详细的可以参考官网上的解释 ANCS spec
目前iOS这边关于蓝牙的开发大多都是基于Ble来实现的,对连接断开有较深使用经验的人都知道,iOS蓝牙这边的Ble关于断连重新连接模块都是用的懒加载(再次连上同一个mac地址的ble设备,底层没有重新获取特征值,只是从缓存里读了一份给到上层)
所以ANCS带来的影响是:
既然无法断开,那就意味着一旦连上了就无法让别的手机去搜索到,而且杀死当前连上的应用后,也无法通过常规的手段( centerManager.scanForPeripherals(withServices: nil, options: nil) )去搜索到设备。
以下提供了一个demo来感受一下整个过程:
运行起来: