Отключить софт-кнопки при раздувании полноэкранного макета из сервиса

У меня есть служба, которая (в onCreate()) раздувает полноэкранный макет (своего рода пользовательский экран блокировки). Я хотел бы отключить (скрыть) программные клавиши (возврат, домой, недавние) и, возможно, также строку состояния.

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

public void onCreate() {
        super.onCreate();

        LayoutInflater li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);

        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.TYPE_TOAST,
                WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                PixelFormat.TRANSLUCENT);

        params.gravity = Gravity.RIGHT | Gravity.TOP;
        View vLockscreen = li.inflate(R.layout.layout_lock, null);

        wm.addView(vLockscreen, params);
    }

Как я могу добиться полной функциональности экрана блокировки?


person c0dehunter    schedule 15.07.2016    source источник