2011-07-20 46 views
7

[編輯:刪除的Android版本都不在話下 - 問題是目前Android上的所有版本]Android的解決方法對非工作的傳感器時,屏幕關閉

背景:當屏幕處於關閉狀態,許多Android手機做當屏幕關閉時,通過調用onSensorChanged()不提供更新加速度計讀數的應用程序。這一行爲在S.O.上討論。並進一步記錄在這裏 http://code.google.com/p/android/issues/detail?id=3708

在某些手機(Nexus S,Droid X2,...)加速度計值僅在值有顯着變化時才提供。例如,坐在桌子上,每分鐘可能有一次或零更新

爲了生成跨電話型號健壯的代碼,我該如何區分每個屏幕關閉更新事件的缺少,以及。每個非運動缺少更新?我應該維護一個手機型號的數據庫嗎?

+0

日的很好的應用實際上註銷加速度計,當活動進入後臺的bug報告。 – Wroclai

+1

感謝您的評論。這個問題的答案的合法需求的一個例子可能是一個計步器應用程序,它將監聽器註冊到服務中。 – luser845

+0

我的經驗是,即使屏幕熄滅,部分喚醒鎖也能保持CPU處於活動狀態。如果加速度計讀數沒有顯着變化,您爲什麼會關心更新?不過,我懷疑這一點,大多數傳感器封裝發出如此多的噪音,以至於他們從不讀零。 – Idistic

回答

0

這將很難被發現。 Android的API提供了一種控制Wake Lock的方法。但是製造商已經做出了將它們應用於操作系統的可怕工作。只是可怕的。您需要抓取PARTIAL_WAKE_LOCK以在屏幕關閉時保持手機CPU運行。

然而,並非所有設備都使用此功能,並且不會響應 - 有一半/一半響應 - 有些響應很好。

看完上面的評論後,我可以告訴你,我用2.3+以上的大多數設備仍然沒有實現部分喚醒鎖。

我個人不會依賴製造商控制的東西,因爲市場是零散的。我會嘗試找到一種方法來獲得我正在尋找的不同解決方案的功能。

希望這會有所幫助。

0

我一直在尋找這個問題的解決方案兩天了。但仍然沒有發現任何有用的東西。

在這篇文章here,布魯諾阿爾伯克基有什麼可以幫助摩托羅拉手機,但它不是通用的。

我相信@jjNford是正確的製造商有一個手指,你可以發佈任何有關信息?

Here是關於從2009年

相關問題