为了实现这个功能可折腾了我好久,先上一份代码,经楼主验证是绝对可以用的而且也比较清晰的代码!(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参数等,或者说去哪里查看等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)