タイトルはそれをほぼ説明しています。Macアプリを作成していますが、バッテリーの充電レベルは特にmWh(パーセンテージではありません)である必要があります。できればCまたはObjectiveCで実行したいと思います。
ありがとう!
タイトルはそれをほぼ説明しています。Macアプリを作成していますが、バッテリーの充電レベルは特にmWh(パーセンテージではありません)である必要があります。できればCまたはObjectiveCで実行したいと思います。
ありがとう!
申し訳ありませんが、ハードウェアにそれを報告する方法はないと思います。バッテリーがライフサイクルに入ると、時間の経過とともに変化します。最初に知ることができるのは、バッテリーを取り付けたときの公称容量だけです。
バッテリー充電レベルをmWhで取得するという私の質問に直接答えるコードを次に示します。それは完璧ではありませんが、それは仕事をします。
+ (NSString* ) chargeInMWH
{
CFMutableDictionaryRef matching , properties = NULL;
io_registry_entry_t entry = 0;
matching = IOServiceMatching( "IOPMPowerSource" );
entry = IOServiceGetMatchingService( kIOMasterPortDefault , matching );
IORegistryEntryCreateCFProperties( entry , &properties , NULL , 0 );
NSNumber * voltage = [[NSNumber alloc] initWithFloat:1.0];
NSNumber * currentCapacity= [[NSNumber alloc] initWithFloat:1.0];
voltage = [properties objectForKey:@"Voltage"];
currentCapacity = [properties objectForKey:@"CurrentCapacity"];
int floatValue = [voltage intValue];
int floatValue2 = [currentCapacity intValue];
int answer = floatValue * floatValue2;
NSString *theCompleteAnswer = [[NSString alloc] initWithFormat:@"%i",answer];
CFRelease( properties );
IOObjectRelease( entry );
return theCompleteAnswer;
}
これはおそらく役に立たないでしょうが、ioreg
コマンドラインプログラムは、設計容量、電流容量、mAh単位の電流充電レベルなど、コンピューターのバッテリーに関するあらゆる種類のすばらしい統計をダンプできることを私は知っています。(ioreg -l
これらすべてで本当に詳細な出力が得られます)プログラムが使用するAPIを理解できれば、同じことができます。
または、アプリからプログラムを呼び出して、出力をキャプチャすることもできます。