1.判断是否安装
//判断用户是否安装微信 public static boolean isAvilible(Context context) { final PackageManager packageManager = context.getPackageManager();// 获取packagemanager List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息 if (pinfo != null) { for (int i = 0; i < pinfo.size(); i++) { String pn = pinfo.get(i).packageName; if (pn.equals("跳转APP的包名")) { return true; } } } return false; } 2.如果没有安装,下载
ActivityInfo activityInfo = Default .getBrowserApp(getApplicationContext()); if (activityInfo != null) { Uri uri = Uri.parse("下载地址"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.setClassName(activityInfo.packageName, activityInfo.name); startActivity(intent);
public static ActivityInfo getBrowserApp(Context context){ String default_browser="android.intent.category.DEFAULT"; String browsable="android.intent.category.BROWSABLE"; String view="android.intent.action.VIEW"; Intent intent=new Intent(view); intent.addCategory(default_browser); intent.addCategory(browsable); Uri uri=Uri.parse("http://"); intent.setDataAndType(uri,null); @SuppressLint("WrongConstant") List<ResolveInfo> resolveInfoList=context.getPackageManager().queryIntentActivities (intent, PackageManager.GET_INTENT_FILTERS); if (resolveInfoList.size()>0){ ActivityInfo activityInfo=resolveInfoList.get(0).activityInfo; return activityInfo; }else { return null; } }
3.安装直接跳转
ComponentName comp = new ComponentName("包名", "类名"); Intent intent = new Intent(); intent.putExtra("参数1",参数1); intent.putExtra("参数2",参数2); intent.setComponent(comp); startActivity(intent);