Android – detects whether the input method is selected

In my application, I need to let the user select an input method. Once it is selected, I should perform some tasks. How to detect that the user actually selects inputmethod?

This is the code used to display the inputmethod list

InputMethodManager imeManager = (InputMethodManager) mw.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imeManager != null) {
    imeManager.showInputMethodPicker();
} else {
    Toast.makeText(mw.getApplicationContext(), "IME ERROR",
    Toast.LENGTH_LONG).show();
}

resolvent:

Unfortunately, you cannot capture the input method selected by the user in inputmethod picker

However, you can use broadcastreceiver to check after user selection. When ime changes, intent.action will be broadcast_ INPUT_ METHOD_ CHANGED.

public class InputMethodChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals(Intent.ACTION_INPUT_METHOD_CHANGED)) {
            .....
            /* You can check the package name of current IME here.*/
        }
    }
}

Then, register it

IntentFilter filter = new IntentFilter(Intent.ACTION_INPUT_METHOD_CHANGED);
registerReceiver(mReceiver, filter);

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>