如何从连接的iOS设备获取电池充电周期?

我在OS X应用程序中使用MobileDevice.framework,我已经能够获得如何通过USB连接的iOS设备的电池使用AMDeviceCopyValue(设备,域,密钥)函数和参数“com.apple .mobile.battery“的域名和”BatteryCurrentCapacity“的密钥.

我也想得到电池充电周期的数量.我相信这是可能的,因为iBackupBot能够获取这些数据.有人知道这是怎么做到的吗我下载了程序的免费副本,并在iPhone 3GS,iPhone 4S和iPhone 5上进行了测试.它能够抓住所有三个设备的数据.

我已经通过LLDB运行了iBackupBot,并记录了它的每一次使用AMDeviceCopyValue().在这样做的时候,我确定没有收到充电周期数.

解决方法

您可以使用设备的ioreg(IORegistry)转储来获取CycleCount和一堆其他信息.例如,有关iPhone 5S的IORegistry转储,请参阅 here.注意这一节:
+-o AppleD2045PMUPowerSource  <class AppleD2045PMUPowerSource,busy 0,retain count 10>
    | |   |   |   |   {
    | |   |   |   |     "battery-data" = {
                            .....
                            "CycleCount" = 1
        | |   |   |   |     "ChargerConfiguration" = 960
        | |   |   |   |     "DesignCapacity" = 1550
        | |   |   |   |     "BatteryData" = {"BatterySerialNumber"="C0133237ALXFHCWBP","ChemID"=4484,"Flags"=256,"QmaxCell0"=1619,"Voltage"=4051,"CycleCount"=1,"StateOfCharge"=72,"DesignCapacity"=1550,"FullAvailableCapacity"=1573,"MaxCapacity"=1517,"MfgData"=<4330313333323337414c58464843574250000000000000010000010000000100>,"ManufactureDate"="1332"}
        | |   |   |   |     "AtCriticalLevel" = No

iOS上的私有IOKit.framework有一个用于访问所有这些信息的API(您可以查看转储来找出属性名称等,以便能够以编程方式访问它). Erica Sadun有一些open source code,使用私人IOKit功能来访问某些设备硬件信息(没有越狱IIRC),所以也许这将是有帮助的.

至于从Mac抓取这个信息,不知道.如果您有一个在设备上的应用程序,可以从IORegistry提取信息,并将其通过USB发送到Mac.如果您想在设备上安装任何其他软件,就必须找出远程获取ioreg转储的方法.

希望这能让你在某个地方!

以上是来客网为你收集整理的如何从连接的iOS设备获取电池充电周期?全部内容,希望文章能够帮你解决如何从连接的iOS设备获取电池充电周期?所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。