android之从第三方启动自己的apk
16lz
2021-01-26
本篇主要是看完郭霖大神在微信里的一篇文章后的实验
贴上大神的文章地址:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650235870&idx=1&sn=8499e45b52199e739d73ba7d2db2c21b&scene=0#wechat_redirect
讲的是从网页的连接打开自己的应用,想着用手机搭建一个服务器,使用 KSWEB开源服务器 ,无奈没有成功。
1. 用apk启动另一个apk:(两个单独的应用)
代码主要需要要启动的应用的完整包名和完整类名,通过发送Intent传递消息
// 由一个应用启动另一个应用 需要 package名称跟class名称 Intent mIntent = new Intent( ); mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ComponentName comp = new ComponentName("com.cl.slack.deeplinks", "com.cl.slack.deeplinks.MainActivity"); mIntent.setComponent(comp); mIntent.setAction("android.intent.action.VIEW"); startActivity(mIntent); finish();
2. 对自己也是醉了,最后居然是使用tomcat搭建了一个局域网服务器,然后虚拟机打开局域网地址,哈哈,但是我也是实现了大神的功能,在网页里打开自己的app
网页端就一句话
deep link
manifest文件: <?xml version="1.0" encoding="utf-8"?> // deep links
默认启动的activity:
/** deep links * 参考郭霖微信文章:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650235870&idx=1&sn=8499e45b52199e739d73ba7d2db2c21b&scene=0#wechat_redirect * create by chenling 2016-05-10 * */public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); if (intent != null) { Uri uri = intent.getData(); if(uri != null){ // uri com.slack.androidtest://buydress Log.i("slack",uri.toString()); String host = uri.getHost(); Log.i("slack",host); if ("buydress".equals(host)) { // 跳转到卖裙子界面 startActivity(new Intent(this,BuyActivity.class)); } } } }}
感谢郭霖大神 更多相关文章
- 开源中国-android客户端源代码阅读1
- 在Android(安卓)Studio 中 activity的四中启动模式
- android两种启动Service方式的区别
- Android(安卓)按钮快速点击问题的解决方案!
- Activity四种启动模式(整合)
- android启动另一个app应用
- 【Android(安卓)Developers Training】 4. 启动另一个Activity
- Android打开本地相册选取图片并显示在ImageView上
- Android(安卓)Studio之项目突然出现乱码但是可以编译通过