Android应用参数的获取

package com.prtsdkapp;import java.lang.ref.WeakReference;import java.util.List;import android.app.ActivityManager;import android.app.ActivityManager.RunningAppProcessInfo;import android.app.ActivityManager.RunningTaskInfo;import android.content.Context;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.pm.PackageManager.NameNotFoundException;import android.util.Log;public class getContextParm {private static final String TAG = "ContextMgr";/** * 两个进程要共用sharedPreferences文件,则context要一样 * @param context * @return */public static Context getContext(Context context, String appPackageName) {// String packageName = "com.anyfish.app";WeakReference<Context> mContext = new WeakReference<Context>(context);Context con = mContext.get();try {Context contextApp = mContext.get().createPackageContext(appPackageName, 0);con = contextApp;} catch (NameNotFoundException e) {e.printStackTrace();}return con;}/** * 获取当前进程名称 * @param context * @return */public static String getCurProcessName(Context context) {Log.d(TAG, "getCurProcessName");int pid = android.os.Process.myPid();ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) {if (appProcess.pid == pid) {Log.d(TAG, "getCurProcessName:" + appProcess.processName);return appProcess.processName;}}return null;}/** * 获取sdk版本号 * @return */public static int getSDKVersionNumber() {int sdkVersion;try {sdkVersion = Integer.valueOf(android.os.Build.VERSION.SDK);} catch (NumberFormatException e) {sdkVersion = 0;}return sdkVersion;}/** * 检测当前packageName程序是否属于前台程序 *  * @param app * @param appPackageName * @return */public static boolean isTopActivity(Context context, String appPackageName) {ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<RunningTaskInfo> tasksInfo = activityManager.getRunningTasks(1);if (tasksInfo.size() > 0) {if (tasksInfo.get(0).topActivity.getPackageName().contains(appPackageName)) {return true;}}return false;}/** * 判断当前packageName程序是否切换到后台了 * @param app * @param appPackageName * @return */public static boolean isBackgroundActivity(Context context,String appPackageName) {if (isTopActivity(context, appPackageName)) {return false;}ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<RunningAppProcessInfo> run = am.getRunningAppProcesses();for (RunningAppProcessInfo ra : run) {if (ra.processName.contains(appPackageName)&& !ra.processName.contains(appPackageName + ":")) {return true;}}return false;}/** * 判断程序是否安装 * @param context * @return */public static boolean isAppInstalled(Context context, String packageName) {Log.d(TAG, "isAppInstalled");PackageManager mPackageManager = context.getPackageManager();if (mPackageManager == null) {return false;}List<PackageInfo> pkgs = mPackageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);boolean installed = false;for (PackageInfo info : pkgs) {if (info.packageName.equals(packageName)) {installed = true;break;}}return installed;}}


更多相关文章

  1. android 加法程序
  2. Android按返回键弹出对话框退出应用程序
  3. 【从头学android】第一个程序,点按钮显示Hello World
  4. 〖Android〗酷派手机固件.cpb文件的分解程序
  5. 如何制作Android手电筒程序
  6. Android应用程序获取ROOT权限的方法(android中如何通过代码检测
  7. 在android中获取系统后台运行的进程
  8. Android MediaPlayer Playback---多媒体开发应用程序接口

随机推荐

  1. Android(安卓)display system overview
  2. 使用apktool + idea 调试smali
  3. Android 自定义 ListView
  4. Android Eclipse 重启adb and Eclipse AD
  5. Android 监听EditText是否为空,控制按钮是
  6. [置顶] Android防火墙+流量统计代码
  7. Android 球碰撞反弹 (1)
  8. android Service详解
  9. Android系统信息查看方法
  10. 【备忘】Android下编译cocos2dx工程