これは、この質問 android: turn off screen when close to face や他の多くの質問に似ていることを知っています。しかし、私は実用的な解決策を見つけることができませんでした。
だから私はオーディオを再生するプログラムを持っています。近接センサーを聞きます:
@Override
public void onSensorChanged(SensorEvent event) {
if(event.values[0] == 0.0){
//phone close to face
playAudio();
}else{
//phone away
stopAudio();
}
このコードを使用して、顔に近づいたときに画面を無効にしました。
WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = 0;
getWindow().setAttributes(params);
しかし、私はそれを取り戻す方法がわかりません:)私は試しました:
WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = 1f; //tried all (1, 100, -1, 0)
getWindow().setAttributes(params);
そして、いくつかの提案:
PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire();
しかし、何も機能しません。電話を顔から離すと音声が停止します。したがって、アクティビティは一時停止されません。