2014-01-14 1 views
4

Я хочу включить и выключить экран на основе датчика приближения. Я могу отключить экран. но код на экране обратно не работает. Кто-нибудь может мне помочь? Это код: `Включить и выключить экран в программном обеспечении в android

public void onSensorChanged(SensorEvent event) { 
if (event.values[0] == 0) { 

Toast.makeText(getApplicationContext(), "sensor in 0",Toast.LENGTH_LONG).show(); 
WindowManager.LayoutParams params = getWindow().getAttributes(); 
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; 
params.screenBrightness = 0; 
getWindow().setAttributes(params); 


     } else { 

Toast.makeText(getApplicationContext(), "sensor in 1",Toast.LENGTH_LONG).show(); 
WindowManager.LayoutParams params = getWindow().getAttributes(); 

params.screenBrightness = -1; 
getWindow().setAttributes(params); 
     } 
}` 
+0

Возможный дубликат [Android: как включить и выключить экран программно?] (Http://stackoverflow.com/questions/9561320/android-how-to-turn-screen-on-and-off-programmatically) –

+0

Проверьте это http://stackoverflow.com/questions/9561320/android-how-to-turn-screen-on-and-off-programmatically –

+0

проверьте это тоже http://android.okhelp.cz/turn-screen- in-off-android-sample-code/ –

ответ

0

Чтобы включить яркость экрана до on значение 1 и превратить его off значение 0.

1

Сначала я потускнел яркость экрана как можно ниже, а затем сделал все элементы графического интерфейса, не требующие внимания при касании. Ниже мой код:

@Override 
public void onSensorChanged(SensorEvent event) { 
    // TODO Auto-generated method stub 
    WindowManager.LayoutParams params = this.getWindow().getAttributes(); 

    if (event.values[0] == 0) { 
     //TODO Store original brightness value 
     params.screenBrightness = 0.005f; 
     this.getWindow().setAttributes(params); 
     enableDisableViewGroup((ViewGroup)findViewById(R.id.YOUR_MAIN_LAYOUT).getParent(),false); 
     Log.e("onSensorChanged","NEAR"); 

    } else { 
     //TODO Store original brightness value   
     params.screenBrightness = -1.0f; 
     this.getWindow().setAttributes(params);      
     enableDisableViewGroup((ViewGroup)findViewById(R.id.YOUR_MAIN_LAYOUT).getParent(),true); 
     Log.e("onSensorChanged","FAR"); 
    }  
} 

From here, я взял ссылку, чтобы отключить связь для просмотра всей экрана.

+0

Почему это так низко? Это одно из самых чистых решений! – Usman