我正在尝试从本机代码启动Android应用程序。
在adb shell中,我们可以使用“am”命令启动应用程序。
链接:
How to run (not only install) an android application using .apk file?
有没有办法通过C代码调用这个“am”命令?
我尝试了以下行,但exec返回-1:
ret = execl("/system/bin/am", "start", "-a", "android.intent.action.MAIN",
"-n", "com.android.settings/.Settings", (char *)NULL);
这是对的吗?
答案 0 :(得分:1)
我得到了答案...... 我'执行了shell本身并给了它命令......它工作了
ret = execl("/system/bin/sh", "sh", "-c", "am start -a android.intent.action.MAIN -n com.android.browser/.BrowserActivity", (char *)NULL);
感谢m0skit0,Padma Kumar,Yuri ......
答案 1 :(得分:0)
你应该使用system()系列方法,首先它会fork子进程并调用shell然后返回,所以它不会阻塞android主线程