android service 里面怎么调用返回键

刘小白
  • 7

RT ,我就是想在service 里面 调用一下返回键。 现在网上大多数都是 在 Activity里面调用的返回键。 请问在service里面可以实现吗。

回复
阅读 9k
4 个回答
✓ 已被采纳

Activity可以响应KeyEvent,所以你调用dispatchKeyEvent的时候,是Activity或者DecorView进行响应你的KeyEvent,但是Service并没有Window和它进行绑定,所以你不能在当前上下文中调用返回键。

如果你想在系统级别调用返回键,是需要系统级的签名的(也就是改Android OS的源码,重新编译)

借助 AccessibilityService 辅助服务的AccessibilityEvent.getSource().performAction(AccessibilityService.GLOBAL_ACTION_BACK);
可以实现,不过还需要用户去开启服务,可行性不高,
或者你试试异步发送 new Instrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);不知道这个在services里面有没有效果。

caicai1377
  • 1
新手上路,请多包涵

请问楼主解决了吗?我也遇到了这样的问题。是怎么结局的可以分享一下吗?我的邮箱[email protected]

Runtime runtime = Runtime.getRuntime();
runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏