Tôi đang cố mã hóa ứng dụng đồng hồ đo ánh sáng cơ bản để sử dụng với máy ảnh 35mm cũ sử dụng Galaxy S2 làm cảm biến.Mã cảm biến ánh sáng trả lại phạm vi giá trị giới hạn
Tôi nên chỉ ra trước hết rằng có chế độ ẩn/kiểm tra khả dụng trên điện thoại này được chọn bằng cách nhập băm sao không băm sao, trên bàn phím dialller rồi chọn 'cảm biến'. Điều này làm cho có sẵn cảm biến ánh sáng cho thấy một loạt các giá trị Lux khác nhau giữa 5 và hơn 2000 trong các bước của 5 khi tôi thay đổi mức độ ánh sáng.
Bằng chứng đơn giản về mã khái niệm tôi đã viết sẽ chỉ hiển thị cho tôi ba giá trị, cụ thể là 10, 100 và 1000 trên cùng một phạm vi điều chỉnh ánh sáng. Mã của tôi là:
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]);
}
}
}
Ai có thể đề xuất tại sao điều này có thể là?
Tôi đã xem câu hỏi Light sensor on Nexus One returns only two distinct values không có ích gì cả. Tôi không thể hiểu cách chế độ thử nghiệm được tích hợp có thể thấy phạm vi đầy đủ và mã của tôi không thể.
Aren 't 50 đại diện một chút ít hơn cho một câu hỏi phức tạp như vậy? : p – poitroae
@Michael: Bạn lãng phí thời gian của bạn sau đó phải không? Nếu bạn nghĩ rằng loại thái độ đó sẽ làm cho bạn nổi tiếng trên Stack Overflow, bạn đang nhầm lẫn. – NickT