Android – Ist es möglich, das Klicken auf die Home-Schaltfläche zu deaktivieren?

Lesezeit: 5 Minuten

Android Ist es moglich das Klicken auf die Home Schaltflache
Vinayak Bevinakatti

Ich habe eine Anwendung, wenn sie startet, muss ich alle Tasten auf dem Android-Gerät deaktivieren, es ist mir gelungen, Anruf beenden und andere zu deaktivieren. Ich muss den Klick auf die Home-Taste deaktivieren. Es sollte keine Aktion beim Klicken hervorrufen.

Alle Vorschläge sehr geschätzt

  • Ja, ich stimme Ihren Kommentaren zu, aber meine Anforderung ist echt, da die Anwendung einige Standardaufgaben hat, von denen ich sage, dass sie mein Telefon intelligent teilen, wie ich mein Telefon meinem Kind übergebe, es sollte in der Lage sein, alles in meiner Anwendung zu tun Mit nur einem Klick sollte die Anwendung nicht ohne meine Erlaubnis beendet werden. Sie müssen die Authentifizierung zum Beenden der Anwendung bereitstellen.

    – Vinayak Bevinakatti

    30. Januar 2010 um 4:41 Uhr

  • Ein gutes Beispiel ist das Todler-Schloss.

    – Jay Askren

    30. Januar 2010 um 22:23 Uhr

  • @Jay Askren, Ja, es ist ein gutes Beispiel. Haben Sie eine Idee zum Codehinweis dafür?

    – Vinayak Bevinakatti

    1. Februar 2010 um 4:49 Uhr

  • Leider nicht. Es tut uns leid.

    – Jay Askren

    1. Februar 2010 um 5:29 Uhr

  • @JohnFeminella: Nun, Sie denken an Android auf privaten Geräten, aber was ist mit einem Unternehmensgerät, von dem Sie nicht möchten, dass die Benutzer durch die Optionen wandern, sondern nur eine Anwendung verwenden?

    – m0skit0

    5. September 2012 um 14:12 Uhr


Android Ist es moglich das Klicken auf die Home Schaltflache
synchron

Ich bin mir ziemlich sicher, dass Toddler Lock nur einen BroadcastReciever verwendet und darauf lauscht Intent.ACTION_MAIN und die Kategorie Intent.CATEGORY_HOME – Aus diesem Grund werden Sie beim ersten Start aufgefordert, das Kontrollkästchen “Diese Anwendung als Standard verwenden” zu aktivieren, und Sie müssen die Kleinkindsperre auswählen.

Es blockiert also nicht wirklich die Home-Taste, es richtet sich nur als Standard-Broadcast-Empfänger ein für:

Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);

Wenn Sie Toddler Lock starten, wird wahrscheinlich ein internes Flag gesetzt, und wenn Sie die Home-Taste drücken, wird das Fenster nur nach vorne gebracht. Wenn das Flag nicht gesetzt ist, wird Launcher wahrscheinlich explizit gestartet.

Ich hoffe das ergibt Sinn. Es ist nur eine Theorie, aber ich bin mir fast 100% sicher, dass es so gemacht wird.

  • Tut mir leid, diesen alten zu kommentieren, aber nur um einige Verwirrung zu beseitigen – Sie können nicht empfangen startActivity() Intents über einen Rundfunkempfänger. Eine andere Aktivität kann sich jedoch als HOME-Aktivität deklarieren, die es dem Benutzer dann ermöglicht, eine Startbildschirmimplementierung auszuwählen, wenn er die HOME-Schaltfläche drückt.

    – CommonsWare

    28. Juni 2011 um 14:30 Uhr

Android Ist es moglich das Klicken auf die Home Schaltflache
Jeffrey

Fügen Sie Ihrer Aktivität folgenden Code hinzu:

@override

public void onAttachedToWindow()
{  
       this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
       super.onAttachedToWindow();  
}

Bearbeiten:

Dies funktioniert in allen älteren Versionen von Android. Aber wird nicht funktionieren in ICS und Jelly Bean und gibt Ihnen einen Absturz in der App

Was bedeutet dieser 4-zeilige Java-Code in einer Android-Anwendung?

  • Während dies funktioniert, um die Home-Taste zu deaktivieren, wird in meinem Fall der Sperrbildschirm über meiner Aktivität angezeigt. Ich versuche, einen Ersatz für den Sperrbildschirm zu erstellen, daher muss ich die Home-Taste deaktivieren

    – Josch

    13. Juli 2011 um 15:12 Uhr

  • Interessant @Josh, welches Telefon benutzt du, auf einer unglaublichen Droiden-Arie. Auch welches OS, 2.2 hier

    – Idistisch

    13. Juli 2011 um 18:10 Uhr

  • Ich habe auf meinem Thunderbolt getestet, der gerootet ist und CM7 (2.3.4) ausführt.

    – Josch

    14. Juli 2011 um 3:06 Uhr

  • Arbeitete auf meinem Acer Tablet mit 3.1

    – Shanabus

    9. September 2011 um 2:33 Uhr

  • Glücklicherweise wurde diese Sicherheitslücke in neueren Versionen von Android behoben.

    – CommonsWare

    13. Oktober 2012 um 17:49 Uhr

1646252590 336 Android Ist es moglich das Klicken auf die Home Schaltflache
Jean-Francois

Fügen Sie dies in Ihrer manifest.xml für Ihre Hauptaktivität hinzu:

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />

Die HOME-Taste wird Ihre Aktivität immer (neu) starten. Arbeitet in Froyo.

  • Ich habe +1 gegeben, weil es das Beenden verhindert, aber es hat mich gefragt, ob meine App der Standard-Launcher ist. Acer-Tablet 3.1

    – Shanabus

    9. September 2011 um 2:35 Uhr

  • Dies ist eine schlechte Lösung und markiert Ihre App nur als Launcher. Benutzer können fälschlicherweise ihren Standard-Launcher mit Ihrer App wechseln. Das willst du nicht.

    – zäh

    8. August 2013 um 14:25 Uhr

1646252591 661 Android Ist es moglich das Klicken auf die Home Schaltflache
davide.gironi

Hier Sie finden meine Android-Beispielanwendung, die auf der Homepage bestehen bleibt. Home, Zurück, Anruf, Power-Taste sind deaktiviert. Der Benutzer kann die Anwendung nur durch Eingabe eines Kennworts beenden.

1646252591 596 Android Ist es moglich das Klicken auf die Home Schaltflache
Amiekuser

Ich habe einen Weg gefunden, die HOME-Taste anzugehen. Legen Sie für Ihre Anwendung das Manifest als fest

<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.HOME" /> 
<category android:name="android.intent.category.DEFAULT" />                            
<category android:name="android.intent.category.MONKEY"/>

Jetzt ist Ihre Anwendung eine alternative Launcher-Anwendung.

Verwenden Sie die adb und deaktivieren Sie die Launcher-Anwendung mit dem Paketmanager

pm disable com.android.launcher2

Jetzt bleibt das Drücken der Home-Taste immer auf demselben Bildschirm.

  • Ich weiß, dass dies eine wirklich alte Frage ist, aber warum sollte dies für ein Problem mit der Laufzeitumgebung relevant sein? Ich bin mir nicht sicher, ob Sie den Launcher programmatisch deaktivieren können (überrascht, wenn Sie könnten) oder sogar sollten.

    – Idistisch

    13. Juli 2011 um 17:57 Uhr

  • Diese Antwort scheint nicht zu helfen, sorry

    – Shanabus

    9. September 2011 um 2:31 Uhr

  • Eigentlich funktioniert es, aber es braucht Systemrechte. Anstatt adb zu deaktivieren, um den Standardstarter zu deaktivieren. Es kann auch auf gemacht werden Code .

    – Yeung

    30. Mai 2014 um 5:48 Uhr

  • Dieses cmd „pm disable com.android.launcher2“ ist ein Fehler: Error: java.lang.IllegalArgumentException: Unknown package: com.android.launcher .

    – AmyNguyen

    17. Februar 2020 um 9:45 Uhr

1646252592 331 Android Ist es moglich das Klicken auf die Home Schaltflache
Richard Rout

Eine weitere Ergänzung zu Jeffreys Post, hier ist etwas, das für mich funktioniert hat (und immer noch ein durchscheinendes Thema erlaubt)

@Override
public void onAttachedToWindow()
{  
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);     
    super.onAttachedToWindow();  
}

Da dadurch der Tastenschutz angezeigt wird, können Sie den Tastenschutz auch einfach deaktivieren, während die App verwendet wird:

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();

Dies funktioniert wirklich gut, um Ihre eigene Keyguard-App zu erstellen.

  • Ich weiß, dass dies eine wirklich alte Frage ist, aber warum sollte dies für ein Problem mit der Laufzeitumgebung relevant sein? Ich bin mir nicht sicher, ob Sie den Launcher programmatisch deaktivieren können (überrascht, wenn Sie könnten) oder sogar sollten.

    – Idistisch

    13. Juli 2011 um 17:57 Uhr

  • Diese Antwort scheint nicht zu helfen, sorry

    – Shanabus

    9. September 2011 um 2:31 Uhr

  • Eigentlich funktioniert es, aber es braucht Systemrechte. Anstatt adb zu deaktivieren, um den Standardstarter zu deaktivieren. Es kann auch auf gemacht werden Code .

    – Yeung

    30. Mai 2014 um 5:48 Uhr

  • Dieses cmd „pm disable com.android.launcher2“ ist ein Fehler: Error: java.lang.IllegalArgumentException: Unknown package: com.android.launcher .

    – AmyNguyen

    17. Februar 2020 um 9:45 Uhr

915800cookie-checkAndroid – Ist es möglich, das Klicken auf die Home-Schaltfläche zu deaktivieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy