2011-05-23 62 views
5

使用光線傳感器時,我遇到了從未觸發onSensorChanged()事件的問題。原因在於,當聽衆註冊時,如果勒克斯值保持不變,則沒有變化,因此沒有事件。但是,我仍然想知道勒克斯的價值!恆定勒克斯值爲0和常數爲60,000之間有區別!Android光線傳感器未觸發事件

經過一番研究,我意識到沒有辦法直接讀取傳感器的勒克斯值。那麼,如何獲得勒克斯的價值,如果它是恆定的,從而不會觸發事件?有沒有辦法最初設置一個錯誤的值(比如-1),所以事件總是會發生?或者我在想這個錯誤?

任何援助將不勝感激!

+1

我已經注意到,Android 2.3.4在註冊後立即通知偵聽器當前值。雖然Android 2.2不這樣做。 – inazaruk 2011-05-30 20:17:07

+0

有趣的是,我的手機是2.3.1。必須找到有2.3.4的人來測試。 – Glitch 2011-05-31 04:20:39

+0

你在用什麼手機? – 2011-06-01 11:05:44

回答

0

我敢肯定,有沒有辦法解決這個問題。你只需要希望勒克斯在一定的時間內改變,然後直接詢問用戶。好的。

2

檢查下面的例子,它解釋瞭如何使用傳感器

Android Light Sensor

+0

這就是我一直在做的事情。問題是,如果勒克斯常數不變,則不會觸發事件。使用您鏈接的代碼,將光線傳感器上的某個東西保持爲0的恆定勒克斯。現在啓動應用程序。你永遠不會得到一個價值,甚至不會是0的價值。它從來沒有報告任何東西。我希望它報告一次價值,正如你所期望的那樣,但事實並非如此。 – Glitch 2011-05-23 11:49:53

+0

你能提供給我你的源代碼,所以我可以得到更多的想法 – 2011-05-23 11:55:28

+0

我知道這是最好的解決方案,但也許你可以檢查定時器內的常量? – Fredrik 2011-05-23 11:58:53