2009-09-24 109 views
2

想知道是否有超出Apple科技統計數據的計算電池壽命的參考。我嘗試過比較一些現有的電池應用程序(電池剩餘電量*蘋果電腦的數據),有時我不會提出相同的答案。也有使用2G的細胞(而不是3G)的統計數據,我沒有看到任何蘋果的2G電池續航時間。計算iOS中的電池壽命

當然,一些應用聲稱他們是'最準確的'......但我沒有看到發生這種情況,除非有人有非常準確的統計資料來源。

+0

這不是一個真正的開發問題,整體電池壽命受制於一個令人難以置信的大範圍變量。你得到的唯一真正的措施是在執行代表性工作負載時將其運行。 – Benno 2009-09-24 03:06:10

+0

如果問題是如何以編程方式計算它,那肯定是一個發展問題。但是你的確有一個關於計算耗盡率的觀點......更確切地說,OP應該詢問(比如說)有多少mAh可用。速率可以通過在一段時間內對該值進行採樣來計算。 – 2009-09-24 03:30:53

+0

嗯,是的,我在這裏,因爲我有興趣建立自己的電池壽命應用程序。所以想要問社區有關計算。 – kindaran 2009-09-24 03:35:18

回答

17

API允許您註冊以接收更改電池電量的通知。它僅報告以5%的增量向上或向下的變化,但您可以使用計時器並測量兩次更改之間的時間(或初始電池電量和第一次更改)。以下是您如何註冊通知:

// Use this call to get the current battery level as a float 
// [[UIDevice currentDevice] batteryLevel] 

[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(batteryStateDidChange:) 
              name:UIDeviceBatteryStateDidChangeNotification 
              object:nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(batteryLevelDidChange:) 
              name:UIDeviceBatteryLevelDidChangeNotification 
              object:nil]; 

第一個通知告訴您當前狀態,例如,拔掉,充電或充滿。第二個會在達到5%的增量時觸發。

在我看來,如果所有給出的變化通知是5%變更通知,那麼準確性不是很好或很快就能計算出來。如果設備沒有做任何事情,5%的改變可能需要很長時間。

也許你可以使用定時器監視[[UIDevice currentDevice] batteryLevel],但是,雖然我還沒有嘗試過,但我認爲它只會以相同的5%增量更新。

+0

我欣賞帖子。我知道SDK代碼。我對信息更感興趣,比如這些電池續航應用從何處獲得2G手機通話時間(Apple提供3G通話時間,但我沒有看到2G)。很明顯,我可以對應用程序使用的公式進行逆向工程,但希望有更好的方法。 – kindaran 2009-09-24 11:48:07

相關問題