2012-12-19 100 views
4

對於我的應用程序,我需要獲得光傳感器的最大值。我認爲所有具有光線感應器的設備(即SensorManager.LIGHT_SUNLIGHT_MAX)都是一樣的,但根據設備上進行的樣品測試,我錯了。Android:獲取光傳感器的最大值

問題是,使用SensorListener只能知道值何時發生了變化。所以我的問題是:如何獲得光線傳感器的最大值(假設用戶可以在傳感器前面放置一個強大的光線,即光線值>最大傳感器值)????????????????????

解決方案可能在尋求價值增長,但我不知道如何管理它。

回答

3

使用下面的方法:

getMaximumRange() 

實現:

SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
Sensor lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 
maxvalue = lightSensor.getMaximumRange(); 

來源:

http://developer.android.com/reference/android/hardware/Sensor.html#getMaximumRange()

+1

getMaximumRange()返回值以上10000,而光傳感器事件給出值當它是黑暗的時候是0,當外面非常晴朗時它的值是5。我能從活動中獲得的最大價值是在光線充足的房間裏獲得了50美元。在星系SIII上測試。 – SMart

+1

我得到了2000多!嘗試將另一款智能手機的閃光燈放在您的光線感應器上! – Alessio

+2

getMaximumRange()爲我返回3000,但傳感器返回值從10到16000!看起來你不能依靠最大範圍值! – DominicM