[uidevice currentdevice].batterymonitoringenabled = yes;double devicelevel = [uidevice currentdevice].batterylevel;
獲取當前剩餘電量, 我們通常採用上述方法。這也是蘋果官方文件提供的。
它返回的是0.00-1.00之間的浮點值。 另外, -1.00表示模擬器。
貌似這個方法不錯, 也很簡單。
但是仔細觀察它的返回值, 我們可以發現。它是以0.05遞變的。 折算成100% 也就是以5%來遞變的。
也就是說, 這個辦法是存在缺陷的, 最起碼, 它不精確。
後來找到了乙個方法。相當精確, 誤差保持在1%以內。
我們知道, mac下有個iokit.framework庫。 它可以計算出我們需要的電量。
如果我們要使用它的話, (ios是不提供的) 可以先建立乙個mac下的工程, 找到iokit.framework,那iokit.framework裡面的iopowersources.h和iopskeys.h拷貝到你的ios專案中。另外, 還需要把iokit也匯入到你的工程中去。
下面具體介紹下使用方法。
#import "iopskeys.h"
#import "iopowersources.h"
/** * 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;}
nslog(@"%.2f", [self getcurrentbatterylevel]);
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!
[uidevice currentdevice].batterymonitoringenabled = yes;double devicelevel = [uidevice currentdevice].batterylevel;
獲取當前剩餘電量, 我們通常採用上述方法。這也是蘋果官方文件提供的。
它返回的是0.00-1.00之間的浮點值。 另外, -1.00表示模擬器。
貌似這個方法不錯, 也很簡單。
但是仔細觀察它的返回值, 我們可以發現。它是以0.05遞變的。 折算成100% 也就是以5%來遞變的。
也就是說, 這個辦法是存在缺陷的, 最起碼, 它不精確。
後來找到了乙個方法。相當精確, 誤差保持在1%以內。
我們知道, mac下有個iokit.framework庫。 它可以計算出我們需要的電量。
如果我們要使用它的話, (ios是不提供的) 可以先建立乙個mac下的工程, 找到iokit.framework,那iokit.framework裡面的iopowersources.h和iopskeys.h拷貝到你的ios專案中。另外, 還需要把iokit也匯入到你的工程中去。
下面具體介紹下使用方法。
#import "iopskeys.h"
#import "iopowersources.h"
/** * 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;}
nslog(@"%.2f", [self getcurrentbatterylevel]);
iOS開發 獲取精確剩餘電量
uidevice currentdevice batterymonitoringenabled yes double devicelevel uidevice currentdevice batterylevel 獲取當前剩餘電量,我們通常採用上述方法。這也是蘋果官方文件提供的。它返回的是0.00 ...
c ,使用WMI物件獲取筆記本電池剩餘電量的百分比
有時候需要監控到筆記本電池的剩餘電量,調查後發現wmi物件可以搞定。在使用wmi物件前,先要新增對system.management的引用,然後就可以呼叫wmi物件。我們使用的wmi物件是 win32 battery 物件參考 managementclass mc new managementcla...
c ,使用WMI物件獲取筆記本電池剩餘電量的百分比
有時候需要監控到筆記本電池的剩餘電量,調查後發現wmi物件可以搞定。在使用wmi物件前,先要新增對system.management的引用,然後就可以呼叫wmi物件。我們使用的wmi物件是 win32 battery 物件參考 managementclass mc new managementcla...