我在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转储的方法.
希望这能让你在某个地方!