android在java层执行input keyevent 4 命令失败?????

sno_guo 2014-06-03 09:20:47
大家好, 我想在android的java层 设置一个悬浮按钮, 当用户按下时, 会把执行安卓的返回键,

我知道在adb shell后的终端可以用input keyevent 4这样的命令来操作.
我想想把他放到java层来做, 于是我这样:

 private void doBackKey(){
/* try ///第一种方案.
{
Process localProcess = Runtime.getRuntime().exec("su");
DataOutputStream localDataOutputStream = new DataOutputStream(localProcess.getOutputStream());
localDataOutputStream.writeBytes("input keyevent 4\n");
localDataOutputStream.flush();
localDataOutputStream.close();
localProcess.waitFor();
/// String str = new DataInputStream(localProcess.getErrorStream()).readLine();
localProcess.destroy();
}
catch (Exception localException)
{
Log.i("snoeeee",localException.getMessage().toString());
Toast.makeText(MainActivity.this,localException.getMessage().toString(), Toast.LENGTH_LONG).show();
}
*/
Process pro; ////这个是第二种方案
try {
pro = Runtime.getRuntime().exec("input keyevent 4\n");
try {
pro.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


经过这两种方案, 我发现都无法执行, 提示说: write failed: EPIPE (Broken pipe) 请问下为什么

我的安卓系统已经ROOT, 一切都完全可以操作, 谢谢.
...全文
629 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljwx2 2015-12-30
  • 打赏
  • 举报
回复
楼主,这个问题正在困扰我,能说下是怎么解决的吗
sno_guo 2014-06-05
  • 打赏
  • 举报
回复
哦, 谢谢, 找了好久, 终于找到了, 安卓提供了这样的api函数, 具体是什么忘记了, 可以搜下: Android自动化测试初探 来找到. 呵呵 谢谢 各位了.
超江 2014-06-04
  • 打赏
  • 举报
回复
权限问题,在AndroidManifest.xml添加“ android:sharedUserId="android.uid.system"”
十三邵 2014-06-03
  • 打赏
  • 举报
回复
经过这两种方案, 我发现都无法执行, 提示说: write failed: EPIPE (Broken pipe) 请问下为什么 我的安卓系统已经ROOT, 一切都完全可以操作, 谢谢. 我也不会,帮你顶一下吧。。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧