HomeButton "sperren"

  • Antworten:11
p a
  • Forum-Beiträge: 131

23.04.2012, 10:02:48 via Website

Hallo,

ich würde gerne erreichen das der HomeButton in meiner Anwendung nicht zur HomeScreen führt, sondern stattdessen einen Dialog öffnet.
Das Gerät ist nicht gerootet (weiss nicht genau inwiefern das relevant ist)

Geht das überhaupt?
Eigentlich muss es ja irgendwie gehen
Kann mir da mal jemand einen Rat geben?

Antworten
Simon F.
  • Forum-Beiträge: 1.527

23.04.2012, 10:51:04 via App

Ich denke schon, dass dies möglich ist. Die ganzen Launcher können dies doch auch.
Vermutlich muss einfach im Manifest die richtige Definition stehen und die App als Standardlauncher eingestellt werden.
Dass man über den langen Druck auf die Taste die letzten Anwendungen auswählen kann, lässt sich ohne root wohl nicht vermeiden. Ein Neustart leert jedoch die Liste.
Nicht vergessen minimale Möglichkeiten einzubauen um einen anderen Launcher zu starten, oder in die Einstellungen zu gelangen um den Standardlauncher zurückzusetzen.

— geändert am 23.04.2012, 10:53:51

p a

Antworten
Maximilian O
  • Forum-Beiträge: 990

23.04.2012, 11:15:21 via Website

p a
ich würde gerne erreichen das der HomeButton in meiner Anwendung nicht zur HomeScreen führt, sondern stattdessen einen Dialog öffnet.
Hi p a,
in dem Moment in dem der User den Homebutton drückt, wird ja eine Methode aufgerufen. Zumindest sollte immer onStop() aufgerufen werden. Du kannst ja mal versuchen dort ein Toast anzuzuzeigen.

Liebe Grüße Maximilian

— geändert am 23.04.2012, 11:15:37

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

p a

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

23.04.2012, 11:25:23 via Website

OK ich konkretisiere mal:
Man kann den Button nicht mit einem normalen OnClickListener abfangen. :)

Im Manifest deklarieren geht, allerdings kriegst Du dann im schlimmsten Fall die Auswahl welche App durch den Klick aufgerufen werden soll.
Intent-Filter halt.

Antworten
p a
  • Forum-Beiträge: 131

23.04.2012, 11:28:48 via Website

erstmal schonmal danke an alle für die Hinweise

Vermutlich muss einfach im Manifest die richtige Definition stehen und die App als Standardlauncher eingestellt werden.
was ist die richtige Definition und wie macht man sowas?

Nicht vergessen minimale Möglichkeiten einzubauen um einen anderen Launcher zu starten, oder in die Einstellungen zu gelangen um den Standardlauncher zurückzusetzen.
das dürfte nicht wirklich nötig sein, gewünscht ist eine App die auf einem Tablet läuft und auf dem Tablet soll NUR diese App laufen, sonst NICHTS.
Der Kunde möchte die halt gerne in seinem Laden auslegen, zur Kundenbefragung. ... Nicht hinterfragen! Der Kunde will es, der Kunde soll es bekommen.

Zumindest sollte immer onStop() aufgerufen werden. Du kannst ja mal versuchen dort ein Toast anzuzuzeigen.
Ja, onStop() wird aufgerufen und der Toast wird auch angezeigt, trotzdem wird die App geschlossen, das kriege ich bislang auch noch nicht abgefangen.

Ich habe auch eben etwas gelesen das man einen Service erstellen soll, der dann prüft ob die App läuft bzw. im Vordergrund ist und wenn nicht regelt der Service das dann halt.
Kann mir dazu einer was näheres sagen oder hat da jemand Erfahrungen?

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

23.04.2012, 11:32:31 via App

p a
Ich habe auch eben etwas gelesen das man einen Service erstellen soll, der dann prüft ob die App läuft bzw. im Vordergrund ist und wenn nicht regelt der Service das dann halt.
Kann mir dazu einer was näheres sagen oder hat da jemand Erfahrungen?
Genau so würde ich das machen.

Der Service greift dann auch direkt nach dem Booten und sorgt dafür, dass immer die App gestartet ist...

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

23.04.2012, 11:34:17 via App

Such mal per Google nach "Android Kiosk Mode", dann findest Du einige Lösungen dazu...

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

Antworten
p a
  • Forum-Beiträge: 131

23.04.2012, 11:52:32 via Website

Man kann den Button nicht mit einem normalen OnClickListener abfangen

Ja, das hatte ich schon rausgefunden, geht mit einem onKeyDown() für den Menü- und den Zurück-Button, aber nicht für den Home-Button, die Kontrolle über den wird von Android nicht an die App übergeben.

Antworten
p a
  • Forum-Beiträge: 131

23.04.2012, 14:06:56 via Website

So, ich habe es jetzt quasi hiermit hinbekommen
1<category android:name="android.intent.category.DEFAULT" />
2<category android:name="android.intent.category.LAUNCHER" / >
3<category android:name="android.intent.category.HOME" / >

jetzt wird die App jedesmal beim drücken auf den Home Button gestartet, aber genau das ist jetzt natürlich auch das Probleme, wenn man den Home Button 3 mal drückt wird 3mal die App gestartet.

Bleibt jetzt rauszufinden wie ich dafür sorge dass immer nur eine Instanz der App läuft.

Antworten