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);

重複的方法我就沒貼了,是不是瞬間覺得非常簡單。學會了趕緊去練練手!

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