我在MobileDevice.framework
应用中使用OS X
我已经能够了解通过iOS
连接的USB
设备的电池使用的电量AMDeviceCopyValue(device, domain, key)
"com.apple.mobile.battery"
的{{1}}和domain
"BatteryCurrentCapacity"
的参数{。}}。{/ 1>
我还希望获得电池充电周期数。我相信这是可能的,因为iBackupBot能够获取该数据。有谁知道这是怎么回事?我下载了该程序的免费副本,并在key
,iPhone 3GS
和iPhone 4S
上对其进行了测试。它能够获取所有三个设备的数据。
我已通过LLDB运行iBackupBot并记录其iPhone 5
的每次使用情况。在这样做的过程中,我确定它没有从中获得Charge Cycles计数。
答案 0 :(得分:14)
您可以使用设备的CycleCount
(IORegistry)转储获取ioreg
和一堆其他信息。例如,请参阅here了解iPhone 5S的IORegistry转储。请注意本节:
+-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
转储的方法。
希望这能让你到达某个地方!
答案 1 :(得分:0)
我猜您正在谈论获取设备电池状态,启用UIDevice对象batteryMonitoringEnabled
后,您可以获得当前状态和电池电量,
像,
UIDevice *device = [UIDevice currentDevice];
device.batteryMonitoringEnabled = YES;
NSLog(@"State: %i Charge: %f", device.batteryState, device.batteryLevel);
您可以获得不同的UIDeviceBatteryState设备