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);
}