Android开发工具类
发布时间:2020-12-14 23:50:23 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public final class SystemTool { /** * 指定格式返回当前系统时间 */ public static String getDataTime(String format) { SimpleDateFormat df = ne
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 public final class SystemTool { /** * 指定格式返回当前系统时间 */ public static String getDataTime(String format) { SimpleDateFormat df = new SimpleDateFormat(format); return df.format(new Date()); } /** * 返回当前系统时间(格式以HH:mm形式) */ public static String getDataTime() { return getDataTime("HH:mm"); } /** * 获取手机IMEI码 */ public static String getPhoneIMEI(Context cxt) { TelephonyManager tm = (TelephonyManager) cxt.getSystemService(Context.TELEPHONY_SERVICE); return tm.getDeviceId(); } /** * 获取手机系统SDK版本 * * @return 如API 17 则返回 17 */ public static int getSDKVersion() { return android.os.Build.VERSION.SDK_INT; } /** * 获取系统版本 * * @return 形如2.3.3 */ public static String getSystemVersion() { return android.os.Build.VERSION.RELEASE; } /** * 调用系统发送短信 */ public static void sendSMS(Context cxt,String smsBody) { Uri smsToUri = Uri.parse("smsto:"); Intent intent = new Intent(Intent.ACTION_SENDTO,smsToUri); intent.putExtra("sms_body",smsBody); cxt.startActivity(intent); } /** * 判断网络是否连接 */ public static boolean checkNet(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cm.getActiveNetworkInfo(); return info != null;// 网络是否连接 } /** * 判断是否为wifi联网 */ public static boolean isWiFi(Context cxt) { ConnectivityManager cm = (ConnectivityManager) cxt.getSystemService(Context.CONNECTIVITY_SERVICE); // wifi的状态:ConnectivityManager.TYPE_WIFI // 3G的状态:ConnectivityManager.TYPE_MOBILE State state = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); return State.CONNECTED == state; } /** * 隐藏系统键盘 <br> * <b>警告</b> 必须是确定键盘显示时才能调用 */ public static void hideKeyBoard(Activity aty) { ((InputMethodManager) aty.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(aty.getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); } /** * 判断当前应用程序是否后台运行 */ public static boolean isBackground(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.processName.equals(context.getPackageName())) { if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) { // 后台运行 return true; } else { // 前台运行 return false; } } } return false; } /** * 判断手机是否处理睡眠 */ public static boolean isSleeping(Context context) { KeyguardManager kgMgr = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); boolean isSleeping = kgMgr.inKeyguardRestrictedInputMode(); return isSleeping; } /** * 安装apk * * @param context * @param file */ public static void installApk(Context context,File file) { Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.setType("application/vnd.android.package-archive"); intent.setData(Uri.fromFile(file)); intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } /** * 获取当前应用程序的版本号 */ public static String getAppVersion(Context context) { String version = "0"; try { version = context.getPackageManager().getPackageInfo(context.getPackageName(),0).versionName; } catch (PackageManager.NameNotFoundException e) { throw new KJException(SystemTool.class.getName() + "the application not found"); } return version; } /** * 回到home,后台运行 */ public static void goHome(Context context) { Intent mHomeIntent = new Intent(Intent.ACTION_MAIN); mHomeIntent.addCategory(Intent.CATEGORY_HOME); mHomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); context.startActivity(mHomeIntent); } /** * 获取应用签名 * * @param context * @param pkgName */ public static String getSign(Context context,String pkgName) { try { PackageInfo pis = context.getPackageManager().getPackageInfo(pkgName,PackageManager.GET_SIGNATURES); return hexdigest(pis.signatures[0].toByteArray()); } catch (NameNotFoundException e) { throw new KJException(SystemTool.class.getName() + "the " + pkgName + "'s application not found"); } } /** * 将签名字符串转换成需要的32位签名 */ private static String hexdigest(byte[] paramArrayOfByte) { final char[] hexDigits = { 48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102 }; try { MessageDigest localMessageDigest = MessageDigest.getInstance("MD5"); localMessageDigest.update(paramArrayOfByte); byte[] arrayOfByte = localMessageDigest.digest(); char[] arrayOfChar = new char[32]; for (int i = 0,j = 0;; i++,j++) { if (i >= 16) { return new String(arrayOfChar); } int k = arrayOfByte[i]; arrayOfChar[j] = hexDigits[(0xF & k >>> 4)]; arrayOfChar[++j] = hexDigits[(k & 0xF)]; } } catch (Exception e) {} return ""; } /** * 获取设备的可用内存大小 * * @param cxt * 应用上下文对象context * @return 当前内存大小 */ public static int getDeviceUsableMemory(Context cxt) { ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); MemoryInfo mi = new MemoryInfo(); am.getMemoryInfo(mi); // 返回当前系统的可用内存 return (int) (mi.availMem / (1024 * 1024)); } /** * 清理后台进程与服务 * * @param cxt * 应用上下文对象context * @return 被清理的数量 */ public static int gc(Context cxt) { long i = getDeviceUsableMemory(cxt); int count = 0; // 清理掉的进程数 ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); // 获取正在运行的service列表 List<RunningServiceInfo> serviceList = am.getRunningServices(100); if (serviceList != null) for (RunningServiceInfo service : serviceList) { if (service.pid == android.os.Process.myPid()) continue; try { android.os.Process.killProcess(service.pid); count++; } catch (Exception e) { e.getStackTrace(); continue; } } // 获取正在运行的进程列表 List<RunningAppProcessInfo> processList = am.getRunningAppProcesses(); if (processList != null) for (RunningAppProcessInfo process : processList) { // 一般数值大于RunningAppProcessInfo.IMPORTANCE_SERVICE的进程都长时间没用或者空进程了 // 一般数值大于RunningAppProcessInfo.IMPORTANCE_VISIBLE的进程都是非可见进程,也就是在后台运行着 if (process.importance > RunningAppProcessInfo.IMPORTANCE_VISIBLE) { // pkgList 得到该进程下运行的包名 String[] pkgList = process.pkgList; for (String pkgName : pkgList) { try { am.killBackgroundProcesses(pkgName); count++; } catch (Exception e) { // 防止意外发生 e.getStackTrace(); continue; } } } } //"清理了" + (getDeviceUsableMemory(cxt) - i) + "M内存"; return count; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |