0

iOS でデバイスのバッテリー状態を表示したい。

バッテリーの状態を表示するために次のコードを書いています。

UIDevice *myDevice = [UIDevice currentDevice];

[myDevice setBatteryMonitoringEnabled:YES];
double batLeft = (float)[myDevice batteryLevel] * 100;
NSLog(@"%.f",batLeft);
NSString * levelLabel = [NSString stringWithFormat:@"%.f%%", batLeft];
lblLabel.text =levelLabel;

アプリの実行時にバッテリーの状態を細かく表示します。ただし、アプリがバックグラウンドにある場合、更新された値は取得されませんでした。デバイスのバッテリー状態を毎回表示したい。また、バッテリーの残量が 2 ~ 3% になったときに通知を送信したいと考えています。

4

2 に答える 2

1

これは、毎秒バッテリーをチェックする例です。バッテリーの状態がいつ変化したかを確認する必要がありますが、現在のコードはviewDidLoadで1回だけ読み取られると思います。

- (void)viewDidLoad {
    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(checkBattery) userInfo:nil repeats:YES];
}



- (void)checkBattery {

    [myDevice setBatteryMonitoringEnabled:YES];
    double batLeft = (float)[myDevice batteryLevel] * 100;
    NSLog(@"%.f",batLeft);
    NSString * levelLabel = [NSString stringWithFormat:@"%.f%%", batLeft];
    lblLabel.text =levelLabel;

}
于 2013-04-23T05:12:25.947 に答える