Wie deaktivieren Sie die Funktion „air command“ auf Android-Geräten?

Hallo, ich habe eine Anwendung entwickelt, mit einem Stift (z.B., Samsung-Stift).
Wie Sie wissen, wenn wir auf einen Knopf am Stift, „Air command“ (pop-up-Fenster) wird angezeigt.
Mein Ziel ist es „Überschreiben der air command in meine benutzerdefinierte Funktionen

Ersten, begann ich mit *SpenHoverListener“ (unterstützt von Samsung Spen SDK 5.0) und überschreiben Sie den onHover-Funktion wie folgt.

private SpenHoverListener mHoverListener = new SpenHoverListener() {
    @Override
    public boolean onHover(View view, MotionEvent event) {
        Log.e("Test",""+event.getButtonState());
        updateHoverUI(event.getRawX(), event.getRawY(), event.getPressure(), event.getAction(), "Hover");
        return true;
    }
};

Kann ich überwachen erfolgreich die Schaltfläche click-Ereignis (BUTTON_STYLUS_PRIMARY => Button geklickt wird). JEDOCH, kann ich nicht deaktivieren Sie die air command.

Gibt es eine Möglichkeit zum deaktivieren der air command?

Beste Grüße.

  • haben Sie versucht, das überschreiben der onHoverButtonDown Ereignis für den Spen ? aus der Dokumentation sieht es so aus das Veranstaltung überschreiben, um zu stoppen Luft-Befehl, wie air command feuert nur, wenn Sie die Taste drücken, während Sie schweben.
  • Es war möglich, in früheren Samsung-SDK – sdk2.3. (Aber ich weiß nicht, ob das überschreiben der onHoverButtonDown könnte überlappen sich die air command Funktion oder nicht). Trotzdem, leider, Samsung SDK 5.0 entfernen Sie die onHoverButtonDown-Schnittstelle. (es ist veraltet.)
  • also die einzige andere Lösung (die wird sehr gewunden) ist, dass Sie setup eine Tasker Aufgabe, die Sinne der Taste drücken, sucht der air command Aktivität, tötet es, wenn es findet, es dann tut, was Sie tun möchten, in Ihrer app. (seine viel einfacher, wenn Sie könnte-code Ihrer Funktion, um das Feuer auf einen langen Tastendruck nicht gestartet, die air command)
  • Ich denke, dass die überwachung, ob air command erscheint oder nicht, ist nicht einfach. Zu tun, wir sollten dump jüngsten Aktivitäten aus dem activity-stack (wie => adb shell dumpsys activity recents), und analysieren Sie die gedumpten Ergebnis zu erkennen, air command in regelmäßigen Abständen. Weiter, gibt es einige timing-Probleme (wenn wir überprüfen Sie die gedumpten Ergebnisse).
  • Übrigens, Der Punkt (der lange Tastendruck nicht auslösen, air command) ist wirklich hilfreich. Vielen Dank 🙂
  • gerne 🙂

InformationsquelleAutor Joonsung Kim | 2018-01-13



2 Replies
  1. 4

    Präambel

    Es war möglich, in früheren note-Modellen und tablets zu deaktivieren, die Air command.

    Auf Marshmallow (version 6) gibt es keine solche Umschalten.

    Zum ausschalten des Air command-Funktion des Samsung Galaxy Note 4 (at Version):

    Go to Settings > Controls.
    Tap on S Pen.
    Tap on Air Command.
    Disable Air Command.

    Die Luft-Befehl (Paketcom.samsung.android.service.aircommand) implementiert ist, über eine system service.

    Code

    Notionally Sie nicht programmgesteuert entfernen/deaktivieren Sie diese Air service (Berechtigungen) und als system service es scheint zu haben ersten dibs auf der hardware-Ereignisse (Sie bekommen Sie später/auch und es zu spät zu stoppen Luft, wenn es aktiv ist).
    Das sagte Greenify es tut so suchte ich andere Möglichkeiten gefunden und Brevent. Dieser ist völlig kostenlos-Quellcode ist es auf der GitHub (3), ich Spiele es jetzt (beachten Sie, dass es enthält C-code, so NDK erforderlich, wenn Sie es bauen wollen, oder sehen ->). Brevent Play Store

    Luft-Befehl ist ausgegraut im Galaxy Note 5

    Für die Benutzer hier diese Ergrauen aus ist ein problem für Sie, es könnte eine Lösung sein.

    Hier sind einige Wahl-Kommentare:

    Einige Besitzer berichtet, dass air command der im Galaxy Note 5 war ausgegraut.
    Die Ursache ausgegraut Galaxy Note 5 air command ist in der Regel durch
    einige Eingabehilfen-Einstellungen (Gehen Sie auf Eingabehilfen und wechseln Sie auf die Voice Assistant ?). Eigentlich, wenn Sie aktiviert sind solche Eingabehilfen-Einstellungen gab es die Warnmeldung auf air command. Aber die meisten der Zeit, niemand liest es.

    Ich habe ein galaxy note 5 und alles war in Ordnung, bis das Gerät
    schlagen Sie mich zur Aktualisierung seiner android-software von 5.1.1 auf 6.0.1

    Ich habe Hinweis 5 und der Air command aufgehört zu arbeiten, nachdem ich installiert
    Norton Antivirus.

    Greenify

    Für Ihre eigenen persönlichen Gebrauch können Sie die „frei “ – app:

    (Android-version 6+, auch ohne root!) Greenify zu deaktivieren Air Command Service (zum deaktivieren von system-apps/Dienste, die Sie benötigen, um ein kleines „Spende“ und die Funktion wird beschrieben als „experimentellen„).

    • Traurig, Das Samsung Galaxy Note 5 (Android 7.0) unterstützt nicht die Funktion zum deaktivieren der air command. // Nebenbei erwähnt: „Greenify“ (sieht aus wie eine Anwendung, wodurch ein Akku länger) zum deaktivieren der air command. Hier, wie Sie (Greenify) Programm die Funktion (Deaktivierung des air command)? Sie sagte, dass es keine Möglichkeit zum entfernen des air command-Dienst programmgesteuert.
    • R. E. „Greenify“ :(probieren Sie es aus und sehen, ob es funktioniert! dann werden Sie wissen, den Umfang des Problems zumindest), SOLLTE es NICHT möglich sein, zu entfernen system-service aus einer un-gerooteten android-app (Sie müssen die kernel-system-Aufrufe), ich denke, dass Google nicht die Absicht es zu tun, ABER „Oasis Feng“ von Greenify vielleicht fand der eine Weg, es zu tun, dass er Geheimhaltung. Es kann eine Sicherheitsanfälligkeit, die er nutzt. Eines der Dinge, die er verwendet, ist „device admin enabled“ (DevicePolicyManager). Siehe dieser
    • Greenify offenbar nutzt die android Befehl „bin“ zum beenden einer Anwendung. Es wird nicht mehr start bei Telefon-boot, reagieren registrierten Absichten oder werden ausgelöst durch Alarme aus dem system. Code: # am force-stop com.samsung.android.service.aircommand # am start com.samsung.android.service.aircommand Finden Sie unter hier
  2. 0

    Nur ändern Sie den Rückgabetyp auf false. Damit starten Sie Ihre Methode vor und kommuniziert das System, das schweben gescheitert; und damit nicht Auslöser der Luft Anzeigen.

    private SpenHoverListener mHoverListener = new SpenHoverListener() {
        @Override
        public boolean onHover(View view, MotionEvent event) {
            Log.e("Test",""+event.getButtonState());
            updateHoverUI(event.getRawX(), event.getRawY(), event.getPressure(), event.getAction(), "Hover");
            return false;
        }
    };
    • Vielen Dank für einen Kommentar. Aber es funktioniert nicht. „return false“ bedeutet „ich werde keine übertragung der Ereignisse an untergeordneten Ansichten“. Da die Luft-Befehl bereits verarbeitet in die Obere Ebene, es hat keinen Einfluss auf irgendetwas.
    • Hallo, haben Sie bitte keine Lösung? Ich arbeite auf adventure-Spiel und ich mag die spen Taste für etwas anderes.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.