阐述
One Team,One Style。 新产品团队着实让我们费了老大劲,有些东西看似简单,但真正实现下来还是需要下一番功夫。此版本搞了一个阅读状态器,里面包含电池信息、网络类型等设备相关信息。网络类型蜂窝相关的如果不细拆分 (2G、3G、4G) 则感觉并不那么费劲,毕竟官方已经给出了相关Demo。不过,在产品团队要求下还是做精做细,故记录一下整个功能探坑历程。
记录
0 调研
Sche 1
官方提供的 Reachability(官方) 构件可以供我们使用。 但其只是草草的返回了蜂窝类型WWAN,至于内部具体的细分… 自己动手改造吧。
Sche 2
通过设备状态栏来获取相关设备信息,简单方便。不过… 心里有点不踏实。
1 实现
Sche 1 Reachability (改造版)
官方提供的 Reachability 构件,使用 SystemConfiguration.framework 库来获取当前设备的 SCNetworkReachabilityFlags 标识符,并对标识符进行匹配,从而得到当前设备的大致网络类型。(NotReachable、ReachableViaWiFi、ReachableViaWWAN)
在此基础上,我引入 CoreTelephony.framework 库来细分 ReachableViaWWAN 下的网络类型。
CoreTelephony 库下的 CTTelephonyNetworkInfo 类存储了当前设备蜂窝网络的详细信息。
主要改写代码片段:
<