{lang: 'de'}
Flashhilfe.de - Flash Community

Java Flags FLAG_SHOW_WHEN_LOCKED und FLAG_DISMISS_KEYGUARD in AIR [AIR 2]

 


AntwortenRegistrieren Seite1  

aironaut#1
Benutzerbild von aironaut
Beiträge: 2
Registriert: Mar 2012

30.03.2012, 13:11

Hallo,

ich habe nun eine AIR Anwendung geschrieben für Android, die Anwendung läuft, alles super, alles wunderbar. Und nun kommt die Frage oder das Problem:

Die Anwendung muss im Kiosk Modus laufen, d.h. nur die Anwendung darf bedienbar sein und der Benutzer soll keinesfalls irgendetwas anderes bedienen können. Dafür gibt es auch bereits eine Lösung, sie nennt sich SureLock. Ich benutze ein Samsung Galaxy Tablett 10.1N es lässt sich damit auch sperren. Sobald aber meine AIR App läuft wird die Sperre der Buttom Bar wieder aufgehoben. Die hilfsbereiten Programmierer des Tools haben mir jetzt gesagt ich solle folgenden Java-Code in meine Anwendung einfügen und zwar zum  onCreate Handler für alle activities in der Applikation:

this.getWindow().addFlags(
    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().clearFlags(
   WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

Insbesondere die Flags FLAG_SHOW_WHEN_LOCKED und FLAG_DISMISS_KEYGUARD wären wichtig, damit das Sperren der Anwendung auch unter SureLock funktioniert.

Ich war zwar etwas überrascht, dass SureLock so etwas von einer Anwendung verlangt aber ich habe keine Ahnung von der Android Java Entwicklung und kenne die Hintergründe nicht und muss es als gegeben hinnehmen.

Ich habe mich nun im Internet auf allen möglichen Plattformen umgesehen, ob es nicht möglich ist von AIR aus diese Flags zu setzen oder zumindest doch etwas in AIR zu implementieren was den gleichen Effekt hat.

Ein Idee bestand darin den INVOKE Event der AIR Applikation zu verwenden:

import flash.desktop.*;
import flash.events.*;
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvokeEvent);
function onInvokeEvent(invocation:InvokeEvent):void
{
    //Code zum Setzen der Flags
}

Eine andere Idee war die XML App-Datei mit entsprechenden Anweisungen zu füttern, vor allem in initialWindows Bereich, hier dieser Ausschnitt:

  <initialWindow>
    <content>PartyCheck_Main.swf</content>
    <systemChrome>none</systemChrome>
    <transparent>false</transparent>
    <visible>true</visible>
    <minimizable>false</minimizable>
    <maximizable>false</maximizable>
    <resizable>false</resizable>
    <fullScreen>true</fullScreen>
    <aspectRatio>landscape</aspectRatio>
    <renderMode>gpu</renderMode>
    <autoOrients>true</autoOrients>
  </initialWindow>

Aber auch hier war keine Lösung zu erreichen.

Deswegen nun meine Frage an das Forum ob jemand von Euch eine Methode kennt diese Flags aus AIR heraus zu bedienen oder ev. über das Ausführen von Java Code aus AIR heraus diese Eigenschaften zu beeinflussen.

Ich bedanke mich schon jetzt für jeden der den langen Text bis hierhin gelesen hat und freue mich über jeden kreativen Vorschlag.

Viele Grüße
willie33#2
Benutzerbild von willie33
Beiträge: 147
Wohnort: Qo'noS
Registriert: Nov 2009

30.03.2012, 15:13