网络-通讯

CoreTelephony Framework

1. CTTelephonyNetworkInfo:提供手机注册的运营商信息、当前接入的无线通讯技术、切换运营商(切换SIM卡)通知、当前无线接入技术变更通知。

由于苹果手机也支持了双卡双待,所以新API从iOS12开始支持。

以下是在不同情况下对部分api的测试。

API测试

实用场景:

  1. 判断手机有没插卡:通过serviceSubscriberCellularProviders判断:遍历每个value,若每个CTCarrier的ISO Country Code都为nil则没插卡,不可以Carrier name来判断,无SIM 时Carrier name还是会有的。

2. 飞行模式是否开启判断:1. 首先判断有没插卡。2.插卡时,根据serviceCurrentRadioAccessTechnology是否{}来判断是否飞行模式。3. 没插卡时,无法判断(有没判断意义?)。

3. 飞行模式开关、SIM拔插实时切换跟踪:1.接收CTServiceRadioAccessTechnologyDidChangeNotification通知 2. 收到变更通知时再根据serviceCurrentRadioAccessTechnology是否为{}判断是否飞行模式,根据serviceSubscriberCellularProviders判断插卡。

代码如下:

飞行模式判断(可以写在工具类里)

需要做飞行模式检测的类:

示例的使用代码

踩过的坑:接收CTServiceRadioAccessTechnologyDidChangeNotification通知时,一定要持有CTTelephonyNetworkInfo实例,否则飞行模式的开启关闭通知可能接收不到。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容