Dows有人知道如何通过软件模拟按下后退键吗?我见过一些模拟这个键的应用程序以及一些其他的键,比如home和search。但由于theese不是开源的,我试图建立自己的应用程序来管理这些任务。以回到家为例非常简单,因为我只需发送一个意图。那么......我能做些什么来模拟后退键呢? :)
更新:
我已经下载了一个开源应用程序,该应用程序具有与http://git.hoopajoo.net/
相同的功能就这样做了:
Process process = Runtime.getRuntime().exec("su");
OutputStream outputStream = process.getOutputStream();
String cmd = "keycode " + KeyEvent.KEYCODE_BACK;
outputStream.write((cmd + "\n").getBytes("ASCII"));
“keycode”命令来自哪里?我在Android rootfs中找不到任何所谓的二进制文件?!?!
答案 0 :(得分:9)
Aleadam方法在我的Android 4.1.2上不起作用。我不知道为什么,但这种解决方法有效:
public void dispachBackKey() {
dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
}
答案 1 :(得分:5)
要模拟按键,您可以调度KeyEvent:
myView.getRootView().dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
针对这种情况的另一种解决方案是持续发出通知(请参阅http://developer.android.com/reference/android/app/NotificationManager.html),以便在点击时停止服务。
答案 2 :(得分:2)
我和你有完全相同的问题。结果显示SoftKeys使用的runCommand
中的命令语法与shell不同。
在shell中模拟键事件,请使用input keyevent
。查看文档,后退按钮()的关键代码是4.所以这样做:
input keyevent 4
http://forum.xda-developers.com/showthread.php?t=971768
http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK
答案 3 :(得分:0)
您应该调用onKeyDown()
函数。密钥代码并不难获得,但您可能需要做一些事情来进行理智的事件。