2012-05-27 75 views
1

我正在使用Apple的默認電池電量指示符,允許開發人員在Xcode上使用它,並將其與狀態欄中設備的百分比以及其他應用程序的百分比進行比較。狀態欄上的百分比是78%,另一個應用程序說是75%,但我的應用程序說70%!我預計不會和狀態欄的百分比一樣,但會下降8%?!如何獲得更準確的電池比例?

我的問題是: 1)蘋果爲什麼這麼做? 2)爲什麼其他應用程序(AppBox)顯示不同的電池電量,然後我的應用程序,我該怎麼做?

+1

請包括對您使用的文檔的參考,這不是每個人的書籤:) –

回答

1

沒有指定的文檔,我會假設您使用的是UIDevice參考。

  • 爲什麼不同?

這並不是說廣播通知和100%的匹配,它可能是應用程序正在單獨接收通知。

  • 如何改進?

這很容易,您需要稍微學習mathematical statistics。例如,您可以收集最近時間間隔的統計數據,跳過邊界值(最高,最低),計算平均結果值。有不同的方法,最簡單的方法可能對你有效。

+0

您可以舉一個應用數學統計或指向可應用算法的示例 – user1286653

+0

@ user1286653也許[加權平均](http:///en.wikipedia.org/wiki/Weighted_average)在這裏應該很好。請注意,我沒有對通知和'batteryLevel'數據進行任何可靠的研究,我期望它足夠精確,可以直接使用。聽到這些數據已經由iOs本身或電池控制器處理過,我不會感到驚訝。 –

+0

@ user1286653作爲參考,快速瀏覽一下Android [BatteryStatsImpl](http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/ com/android/internal/os/BatteryStatsImpl.java#BatteryStatsImpl)我發現只有內存中的當前統計信息,他們似乎只使用統計歷史記錄作爲參考。可能是跳躍指標行爲的原因之一。 –