インストールされているキーボードをプログラムで(手動で設定セクションに移動せずに)切り替える方法はありますか?
私の要件は、電話にインストールされているすべてのキーボードがユーザーに表示され、希望するものに切り替えるための選択ダイアログが表示されることです。
(基本的に、彼を設定ページに転送するためのステップを削減したいと思います)
このコードは、要件を満たします。
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
imeManager.showInputMethodPicker();
Commonswareが彼の答えで指摘しているように、ユーザーの背後でこれを行う方法はありません。
アプリにシステム権限があり、権限がある場合
<uses-permission Android:name="Android.permission.WRITE_SECURE_SETTINGS" />
プログラムでキーボードを有効にし、ユーザーの知識がなくてもデフォルトのキーボードにすることで、現在のキーボードとして設定できますOR介入!
//get the old default keyboard in case you want to use it later, or keep it enabled
String oldDefaultKeyboard = Settings.Secure.getString(resolver, Setting.Secure.DEFAULT_INPUT_METHOD);
//enable your keyboard
Settings.Secure.putString(resolver, Settings.Secure.ENABLED_INPUT_METHODS, "com.my.keyboard/.full.path");
//set your keyboard as the new default keyboard
Settings.Secure.putString(resolver, Settings.Secure.DEFAULT_INPUT_METHOD, "com.my.keyboard/.full.path");
キーボードのリストを「:」で区切ってENABLED_INPUT_METHODS
に提供することにより、複数のキーボード(デフォルトのキーボードや独自のキーボードなど)を有効にできます。 docs を参照してください
ime list -a
からadb Shell
を呼び出すことにより、キーボードの完全なパッケージとパスIDを確認できます。
あなたがroot化されたデバイスを持っているなら、あなたは/system/bin/ime
ユーティリティを使うことができます。
インストールされているすべての入力方式を一覧表示します:# ime list -a
Googleのキーボードをデフォルトとして設定します。# ime set com.google.Android.inputmethod.latin/com.Android.inputmethod.latin.LatinIME
On Java side use Runtime.getRuntime()。exec(...) 。
インストールされているキーボードをプログラムで(設定セクションに移動せずに)切り替える方法はありますか?
幸いなことに、セキュリティ上の理由から、いいえ。アプリが使用する入力方式エディターを指示できる場合、マルウェアは入力方式エディターをキーロガーに変更します。
import Android.content.Intent;
import Android.view.inputmethod.InputMethodManager;
// To enable keyboard
startActivity(new Intent("Android.settings.INPUT_METHOD_SETTINGS"));
// To activate the keyboard
InputMethodManager imeManager = (InputMethodManager)
getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
imeManager.showInputMethodPicker();
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
imeManager.showInputMethodPicker();
このコードは、デフォルトのキーボードを変更するようにユーザーに促します