Android软件返回密钥

时间:2011-04-29 13:44:29

标签: android

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中找不到任何所谓的二进制文件?!?!

4 个答案:

答案 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()函数。密钥代码并不难获得,但您可能需要做一些事情来进行理智的事件。