在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);
重复的方法我就没贴了,是不是瞬间觉得非常简单。学会了赶紧去练练手!