Android应用之间的跳转

在Android中跳转到其他的APP,只需要一个包名就可以做到。我们这里已手机QQ为示例,手机QQ的包名如下:com.tencent.mobileqq

关键代码如下:

public void jumpQQ(){
        Intent intent=new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        boolean flag1=packageIsHas(intent, "com.tencent.mobileqq");
        if(!flag1){
        Toast.makeText(getActivity(), "您的手机还没有安装手机QQ,请下载后再试!",         Toast.LENGTH_SHORT).show();
        return;
        }
        Intent in=getActivity().getPackageManager().getLaunchIntentForPackage("com.tencent.mobileqq");
        startActivity(in);
}
/**
         * 判断该包是否存在
         * @param intent
         * @param packageName
         * @return
         */
        private boolean packageIsHas(Intent intent,String packageName){
            List<ResolveInfo> list=getActivity().getPackageManager().queryIntentActivities(intent, 0);
            for(int i=0;i<list.size();i++){
                if(list.get(i).activityInfo.packageName.equals(packageName)){
                    return true;
                }
            }
            return false;
        }

这样就完成了应用的跳转,是不是觉得非常简单。下面我们介绍一下如何跳转到指定页面,跳转到指定页面除了需要应用的包名外,我们还需要该应用的页面包名加上类名。我这里使用了Coremail应用为例,项目包名:cn.mailtech.app,界面包名:cn.mailtech.app.activity.SplashMailtech

关键代码:

                                Intent in=new Intent(Intent.ACTION_MAIN);
				in.addCategory(Intent.CATEGORY_LAUNCHER);
				boolean flag=packageIsHas(in5, "cn.mailtech.app");
				if(!flag){
					Toast.makeText(getActivity(), "缺少Coremail应用,请下载!", Toast.LENGTH_SHORT).show();
					return;
				}
				ComponentName component=new ComponentName("cn.mailtech.app", "cn.mailtech.app.activity.SplashMailtech");
				in.setComponent(component);
				startActivity(in);

重复的方法我就没贴了,是不是瞬间觉得非常简单。学会了赶紧去练练手!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章