Как создать сервис с addView () с помощью WindowManager в Android - PullRequest
0 голосов
/ 14 октября 2019

Я прошел через многие решения, доступные в сети, но я не вполне соответствовал.

По сути, я хотел использовать следующие параметры, используя сервис

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

Я прошел через одно изссылки есть кто-нибудь знает, как получить getWindow () в сервисе на Android?

if(mConfiguration.orientation==Configuration.ORIENTATION_LANDSCAPE){
    mLayoutParams.screenOrientation=Configuration.ORIENTATION_PORTRAIT;
}
mLayoutParams.softInputMode=WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN;

mLayoutParams.gravity = Gravity.TOP|Gravity.CENTER; 
int flag=0
            |WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
            |WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
            |WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
            ; 
mLayoutParams.flags=flag;

mWindowManager.updateViewLayout(mRootView, mLayoutParams);

В приведенном выше коде, как использовать rootview в сервисе?

Заглядывая впередуслышать от вас скоро.

1 Ответ

0 голосов
/ 14 октября 2019

Переменная mRootView относится к представлению, которое было добавлено к WindowManager.

Допустим, вы добавили представление myView к WindowManager следующим образом:

class MyService extends Service
{
    private View myView;

    ...
    myView = new View(context);
    mWindowManager.addView(myView, mLayoutParams);
    ...
}

Теперь вы можете обновить LayoutParams myView с помощью updateViewLayout -метода:

mWindowManager.updateViewLayout(myView, mLayoutParams)
...