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.
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