[英]How Do I get Battery Charge Cycles from a connected iOS device?
我在OS X
應用程序中使用MobileDevice.framework
,我已經能夠通過USB
連接的iOS
設備的電池使用AMDeviceCopyValue(device, domain, key)
函數和參數"com.apple.mobile.battery"
用於domain
, "BatteryCurrentCapacity"
用於key
。
我還想獲得電池充電周期數。 我相信這是可能的,因為iBackupBot能夠獲取該數據。 有誰知道這是怎么回事? 我下載了該程序的免費副本,並在iPhone 3GS
, iPhone 4S
和iPhone 5
。 它能夠獲取所有三個設備的數據。
我已通過LLDB運行iBackupBot並記錄其AMDeviceCopyValue()
每次使用情況。 在這樣做的過程中,我確定它沒有從中獲得Charge Cycles計數。
您可以使用設備的ioreg
(IORegistry)轉儲獲取CycleCount
和一堆其他信息。 例如,請參閱此處了解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有一些開源代碼 ,它使用私有IOKit函數來訪問一些設備硬件信息(沒有越獄,IIRC),所以這可能會有所幫助。
至於從Mac上抓取這些信息,不知道。 如果你有一個設備上的應用程序,可以從IORegistry提取信息,並通過USB將其發送到Mac上。 如果您想在沒有在設備上安裝任何其他軟件的情況下執行此操作,則必須找到遠程獲取ioreg
轉儲的方法。
希望這能讓你到達某個地方!
我猜你正在談論獲得設備電池狀態,啟用了UIDevice對象的batteryMonitoringEnabled
,你可以獲得電池的當前狀態和電平,
喜歡,
UIDevice *device = [UIDevice currentDevice];
device.batteryMonitoringEnabled = YES;
NSLog(@"State: %i Charge: %f", device.batteryState, device.batteryLevel);
你可以得到不同的UIDeviceBatteryState設備
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.