在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);
重複的方法我就沒貼了,是不是瞬間覺得非常簡單。學會了趕緊去練練手!