import android.app.Activity;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.graphics.Matrix;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Environment;import android.util.DisplayMetrics;import android.view.WindowManager;import java.util.ArrayList;import java.util.List;/** * Author: blueZhang * DATE:2015/11/15 * Time: 15:05 * email:bluezhang521@163.com *//** * * <font face ="华文新魏" size = "2" color="yellow">用于获取手机信息的工具类<br/>主方法是获取手机屏幕的宽度和高度</font> * @see #checkNetState(Context) 检测网络的状态(只是检测能不能联网,不能检测什么网络3G/4G) * @see #dip2px(Context, float) * @see #px2dip(Context, float) * @see #getAllApps(Context) 获取手机所有的应用程序 * @see #getMaxMemory() 获取手机最大内存 * @see #getScreenHeight(Activity) 获取屏幕高度 * @see #getScreenWidth(Activity) 获取屏幕宽度 * @see #isMountedSDCard() 判断SD卡是否挂载 * @see #zoomBitmap(Bitmap, int, int) * * */public final class CommonMobileUtil {    private CommonMobileUtil(){    }    /**     * 判断SDCard是否挂载     */    public static boolean isMountedSDCard() {        String status = Environment.getExternalStorageState();        return status.equals(Environment.MEDIA_MOUNTED);    }    /**     * 获取最大内存     *     * @return 返回一个手机的最大内存,单位:M     */    public static long getMaxMemory() {        return Runtime.getRuntime().maxMemory() / 1024;    }    /**     * 检查网络     *     * @param context     * @return     */    public static boolean checkNetState(Context context) {        boolean netstate = false;        ConnectivityManager connectivity = (ConnectivityManager) context                .getSystemService(Context.CONNECTIVITY_SERVICE);        if (connectivity != null) {            NetworkInfo[] allNetworkInfo = connectivity.getAllNetworkInfo();            if (allNetworkInfo != null) {                for (int i = 0; i < allNetworkInfo.length; i++) {                    if (allNetworkInfo[i].getState() == NetworkInfo.State.CONNECTED) {                        netstate = true;                        break;                    }                }            }        }        return netstate;    }    /**     * 得到屏幕高度     *     * @param context     * @return     */    public static int getScreenHeight(Activity context) {        DisplayMetrics metric = new DisplayMetrics();        WindowManager windowManager = (WindowManager) context                .getSystemService(Context.WINDOW_SERVICE);        windowManager.getDefaultDisplay().getMetrics(metric);        return metric.heightPixels;    }    /**     * 得到屏幕宽度     *     * @param context Activity     * @return 返回屏幕的宽度     */    public static int getScreenWidth(Activity context) {        DisplayMetrics metric = new DisplayMetrics();        WindowManager windowManager = (WindowManager) context                .getSystemService(Context.WINDOW_SERVICE);        windowManager.getDefaultDisplay().getMetrics(metric);        return metric.widthPixels;    }    /**     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)     * @param context 上下文对象     * @param dpValue 需要进行转换的dp     * @return 返回转换之后的px     */    public static int dip2px(Context context, float dpValue) {        final float scale = context.getResources().getDisplayMetrics().density;        return (int) (dpValue * scale + 0.5f);    }    /**     *  根据手机的分辨率从 px(像素) 的单位 转成为 dp     * @param context 上下文对象     * @param pxValue 需要进行转换的px大小     * @return 返回转换之后的dp     */    public static int px2dip(Context context, float pxValue) {        final float scale = context.getResources().getDisplayMetrics().density;        return (int) (pxValue / scale + 0.5f);    }    /**     * 查询手机内非系统应用     *     * @param context 上下文对象     * @return 系统应用packageInfo集合     */    public static List<PackageInfo> getAllApps(Context context) {        List<PackageInfo> apps = new ArrayList<PackageInfo>();        PackageManager pManager = context.getPackageManager();        // 获取手机内所有应用        List<PackageInfo> paklist = pManager.getInstalledPackages(0);        for (int i = 0; i < paklist.size(); i++) {            PackageInfo pak = (PackageInfo) paklist.get(i);            // 判断是否为非系统预装的应用程序            if ((pak.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0) {                // customs applications                apps.add(pak);            }        }        return apps;    }    /**     *     * @param bitmap     * @param width     * @param height     * @return     */    public static Bitmap zoomBitmap(Bitmap bitmap, int width, int height) {        int w = bitmap.getWidth();        int h = bitmap.getHeight();        Matrix matrix = new Matrix();        float scaleWidth = ((float) width / w);        float scaleHeight = ((float) height / h);        matrix.postScale(scaleWidth, scaleHeight);        Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, w, h, matrix, true);        return newbmp;    }    /**     * 获取版本号和版本次数     *     * @param context     * @return     */    public static String getVersionCode(Context context, int type) {        try {            PackageInfo pi = context.getPackageManager().getPackageInfo(                    context.getPackageName(), 0);            if (type == 1) {                return String.valueOf(pi.versionCode);            } else {                return pi.versionName;            }        } catch (PackageManager.NameNotFoundException e) {            e.printStackTrace();            return null;        }    }}

更多相关文章

  1. android 获取屏幕是否被锁
  2. ActivityManagerService中根据UID获取App包名
  3. 购物车(retrofit2+rxjava2+dagger+fresco+butterknife+xrecycler
  4. Android使用READ_CONTACTS读取手机联系人
  5. getExternalFilesDir()与getExternalStorageDirectory()区别
  6. Android中判断网络是否可用的代码分享
  7. 蓝牙遥控器获取电量GATT
  8. Android_自定义底部动画弹出pupopwindow
  9. Android之时间戳的简单使用

随机推荐

  1. 超实用案例:美团终端主动监控平台的建设
  2. 只需一步,永久白嫖!请低调使用!
  3. NginxWebUI 1.8.0版本发布
  4. 资深算法专家解读CTR预估业务中的深度学
  5. Spring Security技术栈开发企业级认证与
  6. 饿了么:Redis Cluster运维方案
  7. 超赞!墙裂推荐这款开源、轻量无 Agent 自
  8. Oracle中最容易被忽略的那些实用特性
  9. 产品研发做到又快又好的一个核心原则
  10. Go语言开发分布式任务调度 轻松搞定高性