我正在尝试编写一个非常基本的测光表应用程序,用于我的旧35mm相机,使用我的Galaxy S2作为传感器.
我首先要指出的是,通过在拨号盘上输入星形哈希零星哈希,然后选择“传感器”,可以选择此手机上的隐藏/测试模式.这使得光传感器可用,当我改变光水平时,该光传感器以5的步长显示在5和2000之间变化的Lux值范围.
我编写的非常简单的概念证明代码只会向我显示三个值,即在相同的照明条件范围内分别为10,100和1000.我的代码是:
public class LightMeterActivity extends Activity implements SensorEventListener { private SensorManager mSensorManager; private Sensor mLightSensor; private float mLux = 0.0f; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); } @Override protected void onResume() { super.onResume(); mSensorManager.registerListener(this,mLightSensor,SensorManager.SENSOR_DELAY_FASTEST); } @Override protected void onPause() { mSensorManager.unregisterListener(this); super.onPause(); } @Override public void onAccuracyChanged(Sensor arg0,int arg1) {} @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_LIGHT) { mLux = event.values[0]; String luxStr = String.valueOf(mLux); TextView tv = (TextView) findViewById(R.id.textView1); tv.setText(luxStr); Log.d("LUXTAG","Lux value: " + event.values[0] ); } } }
任何人都可以建议为什么会这样?
我见过问题Light sensor on Nexus One returns only two distinct values
这根本没有帮助.我无法理解内置测试模式如何能够看到整个范围而我的代码却无法看到.