本帖最后由 baodinglaolang 于 2011-12-01 19:22:59 编辑

解决方案 »

  1.   

    这个可以通过将输入法的ID写入系统设置中来完成,大概代码是这样的:
    Settings.Secure.putString(contentResovler,Settings.Secure.DEFAULT_INPUT_METHOD,"输入法的ID");
    InputManagerService会监听这个设置项的改变。
      

  2.   

    这个好像涉及到AIDL,具体要问问google
      

  3.   

    这个我知道,但是我现在再framework里面做修改,写settings需要是程序在system/app下也就是系统程序,可是现在framework里面监听到的是每一个会调用输入法的程序,如果程序本身有权限还可以,关键是很多三方应用没有权限。
      

  4.   

    可以试试activeActivity.getCurrentFocus().getToken()
      

  5.   

    已经解决了额  改framework
    大家有其他更好的方法也可以说说啊
      

  6.   


    可能我和大家的需求不太一样,我的不是针对程序来切换输入法,而是针对edittext这个控件来修改,所以我就修改了framework   InputMethodManager.java  的 focusIn() 方法,每次点击EditText的时候都会调用这个方法