欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Android开发工具类,android工具类,public final

来源: javaer 分享于  点击 38516 次 点评:201

Android开发工具类,android工具类,public final


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 &amp; k >>> 4)];                arrayOfChar[++j] = hexDigits[(k &amp; 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;    }}
相关栏目:

用户点评