[英]How to open browser using execlp native function in C
嗨,我正在研究android应用,其中我使用一个本机c库来实现我的应用中的某些功能。
我正在从本机C代码打开Web浏览器,但是在这里,当开发人员指定默认浏览器的程序包名称和活动名称时,它可以正常工作,但那些没有默认浏览器的手机将无法正常运行,如Motorolo,Nexus手机等。有谷歌浏览器,小米有内置的不同浏览器。
然后,我尝试查找该库项目的ac文件,发现开发人员指定了浏览器的程序包名称和活动名称,这仅是某些手机无法正常运行的原因。
if (version >= 17 || version == 0)
{
execlp("am", "am", "start", "--user", "0", "-n",
"com.android.browser/com.android.browser.BrowserActivity",
"-a", "android.intent.action.VIEW",
"-d", url, (char *)NULL);
}
else
{
execlp("am", "am", "start", "-n",
"com.android.browser/com.android.browser.BrowserActivity",
"-a", "android.intent.action.VIEW",
"-d", url, (char *)NULL);
}
我们可以执行简单的action.View而不指定任何浏览器包名称和活动名称。 让OS处理它,以便无论设备上是否有可用的浏览器,我们的源代码都将打开该浏览器。 如果是这样,那么此execlp
param值是多少。
提前致谢。
尝试使用不带“ -n ...”的命令
开始-a android.intent.action.VIEW -d http://www.stackoverflow.com
这将在android上打开默认浏览器或显示“选择浏览器”对话框。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.