Feststellen, ob eine benutzerdefinierte Tastatur in Android Studio (Java) aktiviert ist

Ich habe eine benutzerdefinierte Tastatur erstellt, kann aber die Gültigkeit nicht beurteilen!

Ich habe mit Android Studio eine benutzerdefinierte Tastatur für verschiedene Zwecke entwickelt, und obwohl ich die Tastatur selbst erstellt habe, konnte ich keine Möglichkeit finden, die Gültigkeit von IME zu bestimmen.

Ich wollte, dass eine Tastatur-App eine Warnung anzeigt, wenn die Tastatur in der App nicht aktiviert ist, zu den Einstellungen springt und versucht, IME zu aktivieren. richtig.

weiß nicht?

... na dann kann man nicht helfen.

Das wollte ich vorerst machen.

Ich werde den Code als Memorandum hinterlassen. Übrigens, ich liebe die Tatsache, dass ich es mit Java anstelle von Kotlin entwickelt habe.

Eigentlich war es nicht so schwierig

Schauen wir uns den Code sofort an.

hoge.java


//Rufen Sie eine Liste der installierten IME-Anwendungen ab
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
List<InputMethodInfo> inputMethodInfoList = imm.getEnabledInputMethodList();

for (int i = 0; i < inputMethodInfoList.size(); ++i) {

     InputMethodInfo inputMethodInfo = inputMethodInfoList.get(i);
     CharSequence label = inputMethodInfo.loadLabel(getPackageManager());

    if(String.valueOf(label).equals("hoge_keyboard")) {

         Log.v("label", String.valueOf(label) + " is active!");

    }
}

Nun, es sieht so aus. Ich bin nur ein Anfänger, der gerade angefangen hat, Android zu entwickeln, also gibt es vielleicht einen besseren Weg.

Die if-Anweisung wird im Protokoll angezeigt, wenn der Tastaturname mit "hoge_keyboard" übereinstimmt. Es ist in Ordnung, wenn Sie den Namen, mit dem Sie übereinstimmen möchten, und den Inhalt der if-Anweisung entsprechend Ihrem Code ändern können.

Ich hoffe, es hilft Menschen, die vor ähnlichen Problemen stehen.

Recommended Posts

Feststellen, ob eine benutzerdefinierte Tastatur in Android Studio (Java) aktiviert ist
Was ist eine Klasse in der Java-Sprache (3 /?)
Was ist eine Klasse in der Java-Sprache (1 /?)
Was ist eine Klasse in der Java-Sprache (2 /?)
Von Java nach C und von C nach Java in Android Studio
Anmerkung: [Java] Wenn sich eine Datei im überwachten Verzeichnis befindet, verarbeiten Sie sie.
[Android / Java] Betreiben Sie eine lokale Datenbank in Room
Ich habe ein Symbol, das in Android Studio nicht aufgelöst werden kann
Ausgabe true mit if (a == 1 && a == 2 && a == 3) in Java (Invisible Identifier)
Hinweise zu Android Studio
Java11: Führen Sie Java-Code unverändert in einer einzelnen Datei aus
Siehe C ++ im Android Studio-Modul (Java / Kotlin)
Verwenden Sie ein JDK eines anderen OpenJDK-Anbieters in Android Studio
Lesen Sie WAV-Daten als Byte-Array unter Android Java
Sie verwenden derzeit Java 6. Lösung in Android Studio Gradle
Suchen Sie eine Teilmenge in Java
Java mit Visual Studio Code
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Quelle zur Anzeige des Zeichenarrays mit numberPicker in Android Studio (Java)
3 Implementieren Sie einen einfachen Interpreter in Java
Ich habe ein PDF mit Java erstellt.
Wie langsam ist Javas Scanner?
Fügen Sie "@ SuppressWarnings" automatisch in Android Studio ein
OkHttp3 (GET, POST) in Android Studio
Versuchen Sie einen If-Ausdruck in Java
[Android Studio] [Java] Memos und Links lernen
Ein einfaches Beispiel für Rückrufe in Java
Was ist ein Ausschnitt in der Programmierung?
Java Calendar ist kein Singleton.
Was ist ein Lambda-Ausdruck (Java)
Bleiben Sie in einem Java Primer stecken
Wiedereinführung von Java8, das seit Android Studio 2.4 verfügbar ist
[Kotlin / Android] Erstellen Sie eine benutzerdefinierte Ansicht
[Java] Bedingte Verzweigung ist eine if-Anweisung, es gibt jedoch auch einen bedingten Operator.