12

1% の精度でバッテリー レベルを取得する方法。

       [UIDevice currentDevice].batteryLevel

5% の精度でバッテリー残量を表示します。しかし、最近、ios 5.1 を実行している iPhone 4S で Battery Doctor アプリを使用しました。これは、1% の精度でバッテリー レベルを示しています。どうすればその精度を得ることができますか...私は多くのことを試して検索しましたが、彼らがそれをどのように計算しているかわかりません..前もって感謝します...

4

5 に答える 5

9

iOS8以降、

[UIDevice currentDevice].batteryLevel

1%の精度を提供します:)

于 2014-12-11T19:50:40.143 に答える
7

Setting->General->Usage->Battery Percentage をオフにすると、Battery Doctor は %5 の精度でバッテリー レベルを表示します...つまり、デバイスの右上隅で何らかの画像認識アルゴリズムを実行していると思います。バッテリーのパーセントが表示されます。

于 2012-12-11T13:53:28.063 に答える
4

脱獄している場合は、単に使用できます

int percent = [(SBUIController*)[objc_getClass("SBUIController") sharedInstance] displayBatteryCapacityAsPercentage];

このメソッドは iOS 4.3 以降に存在し、おそらく Battery Doctor が使用しているものです。

于 2013-06-25T21:21:25.530 に答える
1

答えはこの質問から来ます:

を使用しNSTimerて、表示する値を操作し、正確に見えるようにすることができます。アプリがアクティブなセッションごとに、バッテリー データのサンプル セット (バッテリー レベルが 100% から 95%、次に 95% から 90% に低下するのに必要な時間など) を作成し、デバイス自体に保存します。 . 次に、タイマーを使用して、バッテリ レベルが 5% 低下するのに必要な時間を 5 で割った値に従って、更新された (および推定された) バッテリ値を設定します (各パーセンテージが同じ間隔で低下すると仮定します。これ変化しますが、そうではありません)。顕著な偏差があります) 。バッテリーの寿命が時間とともに低下するのは事実ですが、最後のセッションで保存された値に従ってタイマーの値を調整するため、デバイスの寿命を通じてかなり正確であり続けるはずです.

編集 - 初期状態では、iPhone のモデル ( 3、3G、4、4S) に応じてデフォルト値を指定できます。これらの異なるデバイスに対して異なる値を計算できます。

于 2012-09-10T07:48:20.883 に答える