/**
* 检测一个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; } }