iOS開發獲取電池電量

2021-07-07 06:31:21 字數 1653 閱讀 3685

方法一:通過蘋果官方文件裡面uidevice public api來獲取,**如下:

[uidevice currentdevice].batterymonitoringenabled = yes;

[[nsnotificationcenter defaultcenter]

addobserverforname:uidevicebatteryleveldidchangenotification

object:nil queue:[nsoperationqueue mainqueue]

usingblock:^(nsnotification *notification) ];

但是經過測試發現,在ios7 上 它是以0.05為單位的,但是在ios9下測試,它是以0.01為單位的,雖然也是0.01為單位,但是測試多次也會出現偏差1%左右。也就是說, 這個辦法是存在缺陷的, 最起碼, 它不精確。

/** 

* calculating the remaining energy

* * @return current batterylevel

*/

- (double)getcurrentbatterylevel

//calculating the remaining energy

for (int i = 0 ; i < numofsources ; i++)

psvalue = (cfstringref)cfdictionarygetvalue(psource, cfstr(kiopsnamekey));

int curcapacity = 0;

int maxcapacity = 0;

double percent;

psvalue = cfdictionarygetvalue(psource, cfstr(kiopscurrentcapacitykey));

cfnumbergetvalue((cfnumberref)psvalue, kcfnumbersint32type, &curcapacity);

psvalue = cfdictionarygetvalue(psource, cfstr(kiopsmaxcapacitykey));

cfnumbergetvalue((cfnumberref)psvalue, kcfnumbersint32type, &maxcapacity);

percent = ((double)curcapacity/(double)maxcapacity * 100.0f);

return percent;

} return -1.0f;

}

方法三:通過runtime 獲取statusbar上電池電量控制項類私有變數的值,此方法可精準獲取ios6以上電池電量

mrc:

- (int)getcurrentbatterylevel

else }}

}return 0;

}arc:

- (int)getcurrentbatterylevel

else }}

}}

} return 0;

}

iOS開發 電池電量監測

一 電池狀態獲取及監測 pragma mark 電池狀態獲取及監控 void checkandmonitorbatterystate tvos prohibited uidevicebatterystate state device.batterystate nsarray statearray n...

c Windows CE讀取電池電量

c windows ce讀取電池電量的實現是如何的呢?讓我們來看看 dllimport coredll.dll publicstaticexternuint getsystempowerstatu 2 refsystem power status ex2 psystempowerstatu 2,in...

ADC 採集電池電量

微控制器內部的多路adc採集之間可能會相互影響,使用的時候需要參考datasheet,在nuc100中,adc7 比較與adc6同時使用時,adc6的取樣就會出問題,採集的電量值一直保持不變。其次,adc採集電路的設計也要注意,電阻 電阻引數的選取要配合微控制器內部的adc結構。通常情況,ad採集到...