A few years (and several API's) ago I made an app that turned off the screen when the lid/cover was closed (but the app didn't go to sleep). I'm trying to do it again but I can't remember if I used the proximity sensor or Wake lock. I've been trying with the below code. If I put my finger on the sensor it fires a 'onSensorChanged' event but not if I just close the lid/cover over the sensor. Any bright ideas anyone?
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mProximity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
Toast.makeText(this,"Sensor change detected", Toast.LENGTH_SHORT).show();
}
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mProximity, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
}
You need PROXIMITY_SCREEN_OFF_WAKE_LOCK