Volledige schermoverlay in ICS

Ik heb een volledig schermprogramma dat over de statusbalk heen ligt, zodat je het kunt zien maar er niet op kunt klikken (zoals het vergrendelscherm). Wanneer ik mijn programma in Ice Cream Sandwich uitvoer, valt mijn app onder de statusbalk (waardoor deze aangeraakt kan worden). Hoe kan ik het weer aan het werk krijgen in ICS?

Ik gebruik de volgende code:

final WindowManager.LayoutParams mOverLayParams = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.FILL_PARENT,
            WindowManager.LayoutParams.FILL_PARENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
            WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
            PixelFormat.TRANSLUCENT);
3

2 antwoord

Ik weet alleen de oplossing met het vervangen van TYPE_SYSTEM_ALERT in TYPE_SYSTEM_OVERLAY. Maar op deze manier zal uw venster geen aanraakgebeurtenissen ontvangen.

1
toegevoegd
Ik heb het in mijn app gebruikt (Cool Tool). Het probleem met navigatiebalk in Jelly Bean. Het lijkt erop dat de navigatiebalk een hogere prioriteit heeft dan SYSTEM_OVERLAY. Maar deze oplossing werkt ook goed met de telefoonstatusbalk, zelfs op JB
toegevoegd de auteur deviant, de bron
Ik denk niet dat ik het zal laten werken (althans niet zonder root). De enige reden waarom het in de eerste plaats werkte, was te wijten aan een exploit die is verholpen.
toegevoegd de auteur meeeee, de bron

Probeer de FLAG_FULLSCREEN .

Documentation is here: http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_FULLSCREEN

Voorbeeld:

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
0
toegevoegd
Bedankt voor je snelle reactie. Helaas wordt de statusbalk volledig verwijderd. Ik wil dat het zichtbaar maar niet tastbaar is.
toegevoegd de auteur meeeee, de bron