关于Android输入法切换的问题

需要在代码中能够切换到第三方输入法 InputMethodService.switchInputMethod(String id)这个方法在继承InputMethodService的类中调用的话报错说需要一个权限 但是那个权限是系统app才能使用的 在Activity中调用上面的那个方法报错空指针异常 应该是SetInputMethod中的那个token为空 还有什么方法能够切换输入法的啊 有没有做过类似功能的大神啊 困扰好久了

报错信息java.lang.RuntimeException: Unable to create service com.example.android.softkeyboard.SoftKeyboard: java.lang.SecurityException: Using null token requires permission android.permission.WRITE_SECURE_SETTINGS

@Override
 public void onCreate() {
        super.onCreate();
        mWordSeparators = getResources().getString(R.string.word_separators);
        Log.i("TEST", "TEST");
        this.switchInputMethod("com.example.android.softkeyboard/.SoftKeyboard");
        Log.i("TEST", "after TEST");
       
    }

在继承InputMethodService的累的oncreat中调用switchInputMethod方法 结果报错以上信息

阅读 4.9k
2 个回答

用这个 InputMethodService.switchInputMethod(String id) 不需要什么权限的吧,难道 现在新的SDK变了,

需要在代码中能够切换到第三方输入法,这个功能应该在普通app里面实现不了,只有系统app才可以实现。
你想想看,如果你随便写一个app就可以改变系统的输入法,那么流氓软件将何其多。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题