gpt4 book ai didi

android - 如何使用 C 中的 execlp native 函数打开浏览器

转载 作者:行者123 更新时间:2023-11-30 17:12:21 27 4
gpt4 key购买 nike

您好,我正在开发 Android 应用程序,其中我使用一个 native C 库来实现应用程序中的某些功能。

我正在从 native C 代码打开一个 Web 浏览器,但是当开发人员指定默认浏览器的包名称和 Activity 名称时,它可以正常工作,但是那些没有默认浏览器的手机则无法像 Motorolo、Nexus 手机那样工作等等。他们有谷歌Chrome浏览器,小米有内置的不同浏览器。

然后我尝试查看该库项目的 c 文件,在那里我发现开发人员指定了浏览器的包名称和 Activity 名称,这看起来只是它在某些手机中不起作用的原因。

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来代替指定任何浏览器包名称和 Activity 名称吗?让操作系统处理它,以便设备上有任何可用的浏览器,然后我们的源代码将打开该浏览器。如果是这样,那么这个 execlp 的参数值是什么。

提前致谢。

最佳答案

尝试使用不带“-n ...”的命令,例如

am start -a android.intent.action.VIEW -d http://www.stackoverflow.com

这将在 Android 上打开默认浏览器或显示选择浏览器对话框。

关于android - 如何使用 C 中的 execlp native 函数打开浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com