package com.litesuits.common.utils; import android.app.ActivityManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Process; import java.util.List; /** * @author MaTianyu * @date 2014-12-10 */ public class AppUtil { /** * 是否是主进程 */ public static boolean isMainProcess(Context context) { String procName = getCurrentProcessName(context); return procName == null || procName.equalsIgnoreCase(context.getPackageName()); } /** * 获取当前进程名字 */ public static String getCurrentProcessName(Context context) { int pid = android.os.Process.myPid(); ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) { if (appProcess.pid == pid) { return appProcess.processName; } } return null; } /** * 调用系统分享 */ public static void shareToOtherApp(Context context, String title, String content, String dialogTitle) { Intent intentItem = new Intent(Intent.ACTION_SEND); intentItem.setType("text/plain"); intentItem.putExtra(Intent.EXTRA_SUBJECT, title); intentItem.putExtra(Intent.EXTRA_TEXT, content); intentItem.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(Intent.createChooser(intentItem, dialogTitle)); } /** * need < uses-permission android:name =“android.permission.GET_TASKS” /> * 判断是否前台运行 */ public static boolean isRunningForeground(Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> taskList = am.getRunningTasks(1); if (taskList != null && !taskList.isEmpty()) { ComponentName componentName = taskList.get(0).topActivity; if (componentName != null && componentName.getPackageName().equals(context.getPackageName())) { return true; } } return false; } /** * 获取App包 信息版本号 */ public PackageInfo getPackageInfo(Context context) { PackageManager packageManager = context.getPackageManager(); PackageInfo packageInfo = null; try { packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return packageInfo; } public static void killTheApp() { android.os.Process.killProcess(Process.myPid()); System.exit(0); } }