方法一:通過蘋果官方文件裡面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採集到...