怎么在一个apk内打开另一个apk

怎么在一个apk内打开另一个apk,第1张

为了实现这个功能可折腾了我好久,先上一份代码,经楼主验证是绝对可以用的而且也比较清晰的代码!(ps:还是先剧透下吧,第三方大部分浏览器无法成功。)

点击浏览器中的URL链接,启动特定的App。

首先做成HTML的页面,页面内容格式如下:

<a href="[scheme]://[host]/[path][query]">启动应用程序</a>

这一句就可以了。

各个项目含义如下所示:

scheme:判别启动的App。 ※详细后述

host:适当记述

path:传值时必须的key ※没有也可以

query:获取值的Key和Value ※没有也可以

作为测试好好写了一下,如下:

<a href="myapp://jpapp/openwithname=zhangsan&age=26">启动应用程序</a>

接下来是Android端。

首先在AndroidManifestxml的MAIN Activity下追加以下内容。(启动Activity时给予)

※必须添加项

<intent-filter>

<action android:name="androidintentactionVIEW"/>

<category android:name="androidintentcategoryDEFAULT" />

<category android:name="androidintentcategoryBROWSABLE" />

<data android:scheme="myapp" android:host="jpapp" android:pathPrefix="/openwith"/>

</intent-filter>

HTML记述的内容加入<data …/>。

其中必须的内容仅scheme,没有其他内容app也能启动。

※注意事项:intent-filter的内容androidintentactionMAIN和 androidintentcategoryLAUNCHER这2个,不能与这次追加的内容混合。

所以,如果加入了同一个Activity,请按以下这样做,否则会导致应用图标在桌面消失等问题。

复制代码

<intent-filter>

<action android:name="androidintentactionMAIN"/>

<category android:name="androidintentcategoryLAUNCHER" />

</intent-filter>

<intent-filter>

<action android:name="androidintentactionVIEW"/>

<category android:name="androidintentcategoryDEFAULT" />

<category android:name="androidintentcategoryBROWSABLE" />

<data android:scheme="myapp" android:host="jpapp" android:pathPrefix="/openwith"/>

</intent-filter>

复制代码

这样的话,没有问题。

接下来在Activity中需要取值的地方添加以下代码,我是直接写在OnCreate函数里的:

Intent i_getvalue = getIntent();

String action = i_getvaluegetAction();

if(IntentACTION_VIEWequals(action)){

Uri uri = i_getvaluegetData();

if(uri != null){

String name = urigetQueryParameter("name");

String age= urigetQueryParameter("age");

}

}

这样就能获取到URL传递过来的值了。

以上就是关于怎么在一个apk内打开另一个apk全部的内容,包括:怎么在一个apk内打开另一个apk、如何扫描Android APK依赖的Jar包中哪些文件包含指定字符、怎么获取android系统服务,如Uri,intent参数等,或者说去哪里查看等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9503596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存