Android开发系统工具类SysUtils:获取App版本号、SD卡目录、缓存目录、是否后台运行、前台可见
2016-04-11 20:21
661 查看
public class SysUtils { private static final String TAG = "SysUtils"; private SysUtils() { } /**获取版本号 * @param context * @return */ public static String getVersionName(Context context) { PackageManager pkgMng = context.getPackageManager(); PackageInfo pkgInfo = null; try { pkgInfo = pkgMng.getPackageInfo(context.getPackageName(), 0); } catch (NameNotFoundException e) { e.printStackTrace(); } return pkgInfo != null ? pkgInfo.versionName : ""; } /** * 获取SD卡目录 * @return 如果没有SD卡就返回null */ public static String getSdDir() { boolean sdCardExist = Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED); // 判断sd卡是否存在 if (sdCardExist) { return Environment.getExternalStorageDirectory().toString(); // 获取目录 } return null; } /** * 获取应用缓存目录 * @param context * @return */ public static String getCacheDir(Context context) { return context.getCacheDir().toString(); } /**获取应用的语言 * @param context * @return */ public static String getLanguage(Context context) { Locale locale = context.getResources().getConfiguration().locale; return locale.getLanguage(); } /** * 判断程序是否在后台运行 * @param context * @return */ public static boolean isBackground(Context context) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appProcesses = activityManager .getRunningAppProcesses(); for (RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.processName.equals(context.getPackageName())) { if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) { return true; } else { return false; } } } return false; } /**判断app是否前台可见 * @param context * @return */ public static boolean isVisible(Context context) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appProcesses = activityManager .getRunningAppProcesses(); for (RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.processName.equals(context.getPackageName())) { if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_VISIBLE || appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { return true; } else { return false; } } } return false; } }
相关文章推荐
- Android学习笔记之ListView
- Android IPC机制(三):浅谈Binder的使用
- Unity3D集成有米广告及友盟SDK
- BlockCanary分析android卡顿
- Android Design Support之scroll 初探
- java/android中对回调函数深入灵魂的理解
- Android 文件操作
- android studio "android() not found"
- swift 初步接触 基本语法 方法命名 !和?区别 as!和as?区别 let和var区别 extension override private (一)
- Android屏幕内容制作成GIF图方式
- 将字符串中的空格变成%20如“we are happy ”变成“we%20are%20happy”
- android api汇集
- APP自动化(1)——搭建Appium自动化测试平台环境(基于python&android)
- android 关于textview跑马灯的问题解决方案
- 第四章、View的工作原理
- 解决com.android.volley.NoConnection error, java.io.InterruptedIOException
- 第三章View的事件体系
- 一篇比较全面的iOS内存管理知识介绍
- Android ImageView scaleType属性
- Android获取手机屏幕的宽高