2017-08-11 7 views
-1

初めてアプリケーションを起動すると、バッテリレベルが正しくfloat batteryLevel = [UIDevice currentDevice].batteryLevelで取得されます。しかし、後で自分のコードで取得しようとすると、バッテリーのレベルが変わっても常に同じ値になります。バッテリレベルの取得は、初めて行うときにのみ実行されます

[UIDevice currentDevice].batteryLevelを呼び出すと、最初の結果と同じ結果が返されます。たとえば、バッテリのレベルがアプリの起動時に30%だった場合、10分後に再度取得しようとすると30%も得られます実際には、この時点での電池残量は40%です。

これはどうして起こるのでしょうか?あなたは、バッテリー状態通知UIDeviceBatteryStateDidChangeNotificationを使用することができます変更するバッテリーレベルを監視するために

+0

タイトルが変更され、文法が固定 –

+0

「batteryMonitoringEna 「はい」に出血?そうしないと、*変更点を見ることができなくなります。 ['batteryMonitoringEnabled'](https://developer.apple.com/documentation/uikit/uidevice/1620045-batterymonitoringenabled?language=objc) – Honey

+0

私のアプリを開くたびに、' '' batteryMonitoringEnabled'''を '' ' '' YES'''、 '' 'NO'''、' 'batteryStatus'''は' '' '' unknown'''、値は '' '-1''''なので、それ。このivarは他の要因の影響を受けていますか? – Wakeen

答えて

0

UIDeviceBatteryLevelDidChangeNotification

あなたは次のように変更の通知を受け取るためにあなたのVCを登録することができます -

NSNotificationCenter.defaultCenter().addObserver(self, selector: "batteryStateDidChange:", name: UIDeviceBatteryStateDidChangeNotification, object: nil) 
NSNotificationCenter.defaultCenter().addObserver(self, selector: "batteryLevelDidChange:", name: UIDeviceBatteryLevelDidChangeNotification, object: nil) 

をそしてセレクタを実装メソッド

func batteryStateDidChange(notification: NSNotification){  
    // The stage did change: plugged, unplugged, full charge... 
} 

func batteryLevelDidChange(notification: NSNotification){  
    // The battery's level did change (98%, 99%, ...) 
} 
+0

私はそれをテストし、この問題を解決することはできません、私は2つのアプリケーションの間でbatteryLevelを取得し、正しいです、別の私はdescripe.I私は知ってほしい任意の要因がそれに影響を与えるでしょうか?私はmethodListとivarListをチェックし、それは各アプリケーションと同じです、私はまた、アドレスを確認し、同じ、私はそれについて感謝していない、感謝! – Wakeen

関連する問題