有关UIDevice获取电量坑

2017-08-20  本文已影响0人  Wakeen96

由于要通过电量为用户开启不同使用模式,所以需要获取手机的电量来检测电量的变化。

[UIDevice currentDevice].batteryLevel

这是系统给出的电量获取方法,在获取之前首先要把batteryMonitoring设置为YES,但是在实际操作中,发现电量在第一次获取之后,再获取都是定值,一开始以为是方法问题,在网上分别着了几种获取电量的方法,包括

实际使用中2获取的电量址并不准确,而且由于使用了私有API,在审核过程中有被拒风险,所以直接舍弃了。
第三种由于引入了framework,增加了包大小,不划算,也舍弃了。后来开始查找为什么会获取一次之后都是定值,通过runtime的一些列表检查了ivarmethod的地址,通过demo对比发现是一样的,所以方法并没有被其他人hook,检查调用线程,发现第一次设置在子线程,于是在launch中设置了YES,通过一系列的尝试,发现以下结论:

上一篇 下一篇

猜你喜欢

热点阅读