运行runtime.exec()的Shell脚本的行为与通过终端运行它的方式不同

时间:2012-06-19 01:42:45

标签: android

我有这个shell脚本片段:

am start -n com.android.gallery3d/com.android.gallery3d.app.MovieActivity -d /sdcard/movie.mp4
sleep 5
input keyevent 4

此脚本基本如下:  1.打开库应用程序以启动movie.mp4  2.睡5秒  3.按返回键

当我通过adb shell运行此脚本时,事情按预期工作,即视频仅在前5秒播放,然后按下后退键,这实际上退出了图库应用。

然而,当我通过runtime.exec()运行它时 画廊确实开始,但没有其他事情发生。当应用程序在后台时,系统似乎阻止我运行脚本。 有人碰巧知道任何工作吗?或者有没有办法使用INTENT来实现相同的结果?

提前致谢

1 个答案:

答案 0 :(得分:1)

应用程序运行的脚本作为应用程序用户标识运行,该标识没有额外的内容 adb shell(作为shell甚至root运行)的调试权限。

出于安全原因,应用程序不应该能够向其他应用程序提供假键击,特别是不能向系统本身提供。

也许不是退出画廊,而是应该尝试用Intent开始其他东西。