Хотя это не отвечает на вопрос о «блокировке» экрана, вы можете скрыть строку состояния, не будучи пользователем root, с помощью API setSystemUiVisibillity (уровень API 11).
Некоторый псевдокод:
public MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstance) {
//...
final View mainView = findViewById(R.id.you_main_view_id);
mainView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
//Register a listener for when the status bar is shown/hidden:
final Context context = getApplicationContext();
mainView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener () {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility == View.SYSTEM_UI_FLAG_VISIBLE)) {
//Do stuff here...pause the video/game?
} else {
//Do other stuff here..resume the video/game?
}
}
});
}
}
Это будет скрывать строку состояния, пока пользователь не щелкнет по нижнему краю экрана, и в этом случае строка состояния отобразится (она получитчерез несколько секунд снова скрывается).
Убедитесь, что в манифесте вы указали targetSdkVersion = "11" или выше.