P Sensor 跟 L sensor 都可以用的类
private SensorManager mMgr;
class AlsListener implements SensorEventListener {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
float[] values = event.values;
if (mAlsEnabled && event.sensor.getType() == Sensor.TYPE_LIGHT) {
tv_als.setText("Lux: " + Float.toString(values[0]));
}
}
}
class PsListener implements SensorEventListener {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
float[] values = event.values;
if (mPsEnabled && event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
tv_ps.setText(String.format("Distances: %.1f", values[0]));
}
}
}
protected void SetPSensor() {
System.out.println("##########SetPSensor");
List sensors = mMgr.getSensorList(Sensor.TYPE_PROXIMITY);
Sensor someSensor = mMgr.getDefaultSensor(Sensor.TYPE_PROXIMITY);
if (sensors.size() > 0) {
mMgr.registerListener(mPsListener, (Sensor) sensors.get(0),
SensorManager.SENSOR_DELAY_NORMAL);
}
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "TAG");
wl.acquire();
}
protected void SetLSensor() {
List sensors = mMgr.getSensorList(Sensor.TYPE_LIGHT);
Sensor someSensor = mMgr.getDefaultSensor(Sensor.TYPE_LIGHT);
if (sensors.size() > 0) {
mMgr.registerListener(mAlsListener, (Sensor) sensors.get(0),
SensorManager.SENSOR_DELAY_NORMAL);
}
}
protected void UnPSensor() {
mMgr.unregisterListener(mPsListener);
}
protected void UnLSensor() {
mMgr.unregisterListener(mAlsListener);
}
本文介绍了一个Android应用中如何使用SensorEventListener接口来实现光线传感器(Lsensor)和接近传感器(PSensor)的功能。通过注册监听器并处理传感器数据变化,能够实时更新界面上显示的光线强度和距离信息。
466

被折叠的 条评论
为什么被折叠?



