键盘可见时启动服务 - Android

时间:2015-04-26 13:23:09

标签: android keyboard android-service android-softkeyboard

我在Android中看到很多关于键盘可见性的帖子。但是,当任何应用程序打开键盘(Messaging,Viber,WhatsApp等)时,我需要启动一个服务,而且正如我所理解的其他帖子,只有键盘是由我的应用程序启动而不是由任何其他应用程序启动时才能检测到它。 / p>

如果任何应用程序启动键盘,我如何实现启动服务?

我希望你理解我。请耐心等待,因为我刚开始使用Android进行编程。

修改

我需要能够在没有root访问权限的情况下执行此操作,或者使用一些复杂的User操作。这将使用许多用户,因此它需要灵活和简单(在他们一边)。

1 个答案:

答案 0 :(得分:0)

由于您将考虑所有应用,因此您必须进入系统资源才能获得该状态。

您必须通过exec()在程序中打开一个shell,并运行此命令:dumpsys window InputMethod | grep "mHasSurface",从此(非常低估的)答案中提取Shell command for keyboard state。他还提供了一个有趣的链接,介绍如何在非root设备上为您的应用程序授权命令。

有关运行exec()Android Java execute shell的不同方式,请参阅此S / O.如果你有root,只需复制他们拥有的东西。如果没有,请将其代码更改为exec()而不是exec('su'),并且a)尝试在OP的答案中进行黑客攻击,或者b)使用系统密钥对您的应用进行签名。

希望这有帮助!