来自Service的dispatchKeyEvent

Nur*_*kov 7 service android view keyevent

我有一个在服务中创建的浮动视图,我需要在触摸此视图时调度关键事件.我发现view.dispatchKeyEvent(需要前景活动的上下文,而关键事件调度仅在活动为前景时才有效.当您关闭/暂停活动并触摸视图时 - 没有任何反应,甚至没有NPE LogCat.

有没有办法在主要活动之外使用这种方法?

Mad*_*han 4

这可能有点太晚了,但我找到了解决方案。(假设 OP 仍然希望从浮动视图或服务触发操作系统后退按钮。)

如果您注册了Accessibility Service,似乎可以告诉 Android 按后退按钮。(一旦您的组件在 Android 中注册,用户必须在系统设置中显式启用它。因此,如果这只是您应用程序的一个利基功能而不是关键功能,那么它可能是一种矫枉过正。)

完成注册等后。因此,您的后台服务可能会告诉辅助服务执行后退按钮,这可以通过调用来完成

performGlobalAction( GLOBAL_ACTION_BACK )

来自无障碍服务。

您确实需要API 级别 16或更高版本才能正常工作。

我还没有时间对此进行测试,但根据文档,这应该可行。 已在许多最新设备上尝试并运行。(Kitkat、Marshmellow 和 Nouget)

我在游戏商店中发现了应用程序后退按钮(无root),它似乎采用这种技术来绘制后退、主页等软按钮。(适用于 LG Nexus 5X 和 Samsung Galaxy Tab A 2016)

华泰