Mam ten kodUnregisterListener nie działa z PROXIMITY_SCREEN_OFF_WAKE_LOCK
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mProximity;
private PowerManager mPowerManager;
private PowerManager.WakeLock mWakeLock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mProximity, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
if (event.values[0] == 0) {
//near
Toast.makeText(getApplicationContext(), "near", Toast.LENGTH_SHORT).show();
turnOffScreen();
} else {
//far
Toast.makeText(getApplicationContext(), "far", Toast.LENGTH_SHORT).show();
turnOnScreen();
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void turnOffScreen() {
mWakeLock = mPowerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag");
mWakeLock.acquire();
}
public void turnOnScreen() {
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
mWakeLock.acquire();
}
}
Gdy aplikacja jest w stanie uśpienia lub przechodzi do innej działalności, czujnik nadal działać. Każdy pomysł?
Aby wyjaśnić, masz na myśli, że wywołania zwrotne będą wywoływane nawet po wywołaniu 'mSensorManager.unregisterListener (this);', czy to się dzieje? –
To wszystko !!!! To dziwne ... bardzo dziwne ... – Cabezas
Czy dzieje się to na wszystkich urządzeniach lub wybiórczo na kilku? – user2450263