/** * 檢測一個android程序是否在運行 * @param context * @param PackageName * @return */ public static boolean isServiceStarted(Context context,String PackageName) { //<uses-permission android:name="android.permission.GET_TASKS"/> //https://crazier9527.iteye.com/blog/1476134 boolean isStarted =false; try { ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); int intGetTastCounter = 1000; List<ActivityManager.RunningServiceInfo> mRunningService = mActivityManager.getRunningServices(intGetTastCounter ); for (ActivityManager.RunningServiceInfo amService : mRunningService) { if(0 == amService.service.getPackageName().compareTo(PackageName)) { isStarted = true; break; } } } catch(SecurityException e) { e.printStackTrace(); } return isStarted; }
權限
<uses-permission android:name="android.permission.GET_TASKS"/>
判斷一個程序是否安裝,如果安裝就啟動
start_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (isApkInstalled(getApplicationContext(),"包名")){ Intent intent = getPackageManager().getLaunchIntentForPackage("包名"); if (intent != null) { intent.putExtra("type", "110"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } }else { Toast.makeText(getApplicationContext(),"沒有安裝", Toast.LENGTH_SHORT).show(); } } });
判斷一個程序是否安裝
/** * 判斷程序是否安裝 * @param context * @param packageName * @return */ public static boolean isApkInstalled(Context context, String packageName) { if (TextUtils.isEmpty(packageName)) { return false; } try { ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return false; } }