2014-01-26 113 views
10

我在我的應用程序中添加了一個使用接近傳感器和加速計傳感器的功能(第二個功能是檢測抖動)。這是在一個始終運行的服務中實現的(如果用戶選擇它)。但我擔心我的電池會有電池使用。我沒有使用任何喚醒鎖,但即使在屏幕關閉的情況下,我仍然可以獲取讀數,因爲我可以在日誌中看到它。問題是:以下哪項是正確的?Android - 傳感器讀數如何影響電池使用壽命

  1. 提到的兩個傳感器通過Android系統反正激活 的全部時間(在這種情況下我收集讀數以及 不影響電池壽命......我猜的)。
  2. Android系統打開這些傳感器了大部分的時間(其中 情況下,我讓他們總是通過我的服務會影響電池 壽命)

如果(2)是正確的:是否有可能實現我的自己的傳感器睡眠週期還是整個切換過程會讓事情變得更糟?

回答

4

傳感器的功率量隨傳感器和傳感器的不同而不同,設備也不同。

平均而言,您最耗電的傳感器是GPS,加速計和陀螺儀。隨時留下它們會降低電池的速度。因此,當設備處於不需要的地方時,您應該暫停傳感器。

之後,光線傳感器和指南針的電池消耗更少,但如果使用它們的時間足夠長,即使它們也會影響電池壽命。

除此之外,您可以在一段時間內測試您的應用程序需要多少時間,或者您可以使用getPower()返回此傳感器在使用時使用的mA電流。

實際上沒有確切的方法。如果您的應用程序必須使用傳感器,然後在需要時使用它。

感謝

+1

無論如何,加速計總是不停地工作嗎?至少當屏幕開啓時......否則屏幕在設備旋轉時不會旋轉。在這種情況下,我的加速計讀數會影響電池壽命嗎?如果是這樣,我可以取消註冊加速度計,當手機被鎖定時,我不會對電池產生任何影響 – Anonymous

+3

當設備被鎖定或進入菜單或當我們的應用程序在background.and中時,加速度計可以暫停,當我們的應用程序可以重新啓動時應用程序回到screen.I不知道你做什麼kindoff應用程序,但我在我的動態壁紙應用程序中使用相同,並考慮我如何使用,它幾乎在背景上運行整個時間給出視差效果,我didn'即使有50000名用戶認爲它的電池電量不足,所以我希望人們知道它會花費很少,他們仍然喜歡使用accelerometer.Btw可以在名爲woody land的遊戲商店中查看並自行測試。謝謝 – unitedartinc

+1

加速度計專門爲手機設計了低功耗中斷模式。當加速度計檢測到方向改變時,它發送一箇中斷信號。手機不會持續輪詢傳感器數據。 – Hans

0

ü可以通過像50ms的一些競爭性較大的時間讀取傳感器的值降低功耗, 即任何Android手機中讀取的數據在5毫秒或10毫秒取決於品牌的手機,我們可以手動將時間縮短到50ms到70ms。它會延長電池壽命,並且不會影響工藝。 謝謝

+1

Android API僅爲傳感器集合提供固定頻率值。傳感器數據收集的速率除了提供的值之外無法更改。 https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_DELAY_FASTEST – iamseiko

+1

@iamseiko自從'Android API 9'(Gingerbread; 2010年末)以來,這是不正確的。您可以使用相同的'registerListener(SensorEventListener,Sensor,int)'方法設置傳感器的採樣率(以微秒爲單位)。 https://developer.android.com/reference/android/hardware/SensorManager.html – Cramps

相關問題