android之从第三方启动自己的apk

本篇主要是看完郭霖大神在微信里的一篇文章后的实验

贴上大神的文章地址:http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650235870&idx=1&sn=8499e45b52199e739d73ba7d2db2c21b&scene=0#wechat_redirect

讲的是从网页的连接打开自己的应用,想着用手机搭建一个服务器,使用 KSWEB开源服务器 ,无奈没有成功。

1. 用apk启动另一个apk:(两个单独的应用)

android之从第三方启动自己的apk_第1张图片

代码主要需要要启动的应用的完整包名和完整类名,通过发送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

android之从第三方启动自己的apk_第2张图片


网页端就一句话

deep link
manifest文件:



    
        
            
                

                
                // 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,studio)