2011-10-28 5 views

答えて

10

使用プロパティbatteryState

[[UIDevice currentDevice] batteryState] == UIDeviceBatteryStateCharging 

UIDevice Docsから:あなたの第二の質問については

typedef enum { 
    UIDeviceBatteryStateUnknown, 
    UIDeviceBatteryStateUnplugged, 
    UIDeviceBatteryStateCharging, 
    UIDeviceBatteryStateFull, 
} UIDeviceBatteryState; 

。私は上記のUIDeviceBatteryStateフラグがデバイスバッテリが報告できる唯一の "状態"であるため、バッテリパックと壁面充電器の違いを判断することはできません。したがって、バッテリパックと壁面充電器の両方がUIDeviceBatteryStateChargingまたはUIDeviceBatteryStateFull(またはバッテリパックが差し込まれているがジュースから外れている場合はUIDeviceBatteryStateUnplugged)と表示されます。

+0

これはまさに私が探していたものです! –

1

バッテリーが充電中であるかどうかを検出することはできますが、それは既存のAPIと同じくらいです。つまり、どこから電源が入ってきたかを検出する方法はありません。

UIDeviceBatteryState batteryState = [UIDevice currentDevice].batteryState; 
if (batteryState == UIDeviceBatteryStateCharging) { 
    // Your code here 
} 
1

私は、行を含める必要があった

[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES]。

またはそれ以外の場合は、batteryStateはUIDeviceBatteryStateUnknownを返します。おそらく、この質問が最初に尋ねられ答えられたので、これは必要になったでしょう。ここでヒントを見つけました:Determine accurate iPhone battery level

関連する問題