Android 的 MultiClientInputMethod 示例无法正常工作

The sample of Android's MultiClientInputMethod cannot properly work

我按照Google的官方说明使用MultiClientInputMethodManagerService(https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/inputmethod/multi-client-ime.md)

的例子

带有perDisplayFocus的AOSP11模拟器已经搭建好了,截图你可以看到 enter image description here

但是ime的window只在主屏显示,而且只能在主屏输入enter image description here

我添加了一些日志来查看多输入window,好像已经显示了

@Override
public void onShowSoftInput(int flags, ResultReceiver resultReceiver) {
    if (DEBUG) {
        Log.v(TAG, "onShowSoftInput clientId=" + mClientId + " flags=" + flags);
    }
    final SoftInputWindow window =
            mSoftInputWindowManager.getSoftInputWindow(mSelfReportedDisplayId);
    if (window == null) {
        return;
    }
    if (mClientId != window.getClientId()) {
        Log.w(TAG, "onShowSoftInput() from a background client is ignored."
                + " windowClientId=" + window.getClientId()
                + " clientId=" + mClientId);
        return;
    }

    window.show();
    Log.v(TAG, "is showing"+window.isShowing());
}

AndroidStudiologcatenter image description here 我在Google上搜索了很久都没有找到相关问题time.Has有人用过这个,非常感谢有经验的回答者

我已经解决了,看到这个问题的可以参考我的解决方法https://github.com/Superpengun/MultiDisplayInput

项目中使用的jar是从aosp12编译出来的classed.jar提取出来的,keyboardview是一个dialog,可能dialog的显示有差异Multi-screen。在 github 的项目中,我为 AOSP12 的隐藏 api 重建了 jar 并验证了它