gpt4 book ai didi

android - 如何从 inputmethodservice 调用 Activity 并获得响应

转载 作者:太空狗 更新时间:2023-10-29 14:30:45 30 4
gpt4 key购买 nike

我有一个软键盘作为调用 Activity 的输入法服务。按下按钮并激活扫描仪。 scanner Activity 捕获一组数据,然后将数据返回到 inputmethodservice 以在浏览器上填写文本字段。

如何将 Activity 的扫描值返回给 inputmethodservice?

感谢您的帮助。

最佳答案

您通常无法通过服务执行此操作。因为 Service 不是 Activity,它无法从 Activity 接收结果,因此没有 startActivityForResult()。

事实上,您可能不想这样做。启动一个 Activity 充其量是一种笨拙的体验——在一个字段中输入的用户并不真的希望将上下文切换到另一个应用程序的 Activity 作为他们输入的一部分。

更糟糕的是,这为许多丑陋的交互打开了大门。例如,如果他们按主页或使用通知或最近使用的应用程序切换到另一个应用程序,您的 Activity 会发生什么变化?可能没什么好东西。

相反,我建议只显示一个对话框作为 IME 的一部分——使用 Dialog 类并将其窗口类型设置为 TYPE_INPUT_METHOD_DIALOG .这将显示在您的 IME 顶部,允许您在不中断编辑 session 的情况下与用户交互。例如,您需要将此对话框设置为不使用 FLAG_NOT_FOCUSABLE 获取输入焦点因此用户正在执行输入的文本编辑 session 不会中断。

老实说,最好的办法是将您的 UI 合并到 IME 本身。

关于android - 如何从 inputmethodservice 调用 Activity 并获得响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7218360/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com