【Android】设备工具类(DeviceUtil.java)

/**
 * @ClassName:DeviceUtil
 * @Description:TODO<设备工具类--获取设备信息>
 * @author:zihao
 * @date:2015年1月17日 上午8:51:34
 * @version:v1.0
 */
public class DeviceUtil {

    private static final String TAG = DeviceUtil.class.getSimpleName();

    /**
     * TODO<获取本地ip地址>
     * 
     * @return String
     */
    public static String getLocAddress() {
        String ipaddress = "";

        try {
            Enumeration<NetworkInterface> en = NetworkInterface
                    .getNetworkInterfaces();
            // 遍历所用的网络接口
            while (en.hasMoreElements()) {
                NetworkInterface networks = en.nextElement();
                // 得到每一个网络接口绑定的所有ip
                Enumeration<InetAddress> address = networks.getInetAddresses();
                // 遍历每一个接口绑定的所有ip
                while (address.hasMoreElements()) {
                    InetAddress inetAddress = address.nextElement();
                    if (!inetAddress.isLoopbackAddress()
                            && inetAddress instanceof Inet4Address) {
                        ipaddress = inetAddress.getHostAddress();
                    }
                }
            }
        } catch (SocketException e) {
            Log.e(TAG, "getLocAddress error:" + e.toString());
        }

        Log.i(TAG, "本机IP:" + ipaddress);
        return ipaddress;
    }

    /**
     * TODO<获取当前App进程的名称>
     * 
     * @return String
     */
    public static String getAppProcessName(Context context, int processId) {
        String processName = null;

        ActivityManager am = (ActivityManager) context
                .getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningAppProcessInfo> l = am.getRunningAppProcesses();// 获取所有运行App的进程集合
        Iterator<RunningAppProcessInfo> i = l.iterator();

        while (i.hasNext()) {
            ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i
                    .next());
            try {
                if (info.pid == processId) {
                    processName = info.processName;
                    return processName;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        return processName;
    }

    /**
     * TODO<获取应用版本名--versionName>
     * 
     * @return String
     */
    public static String getVersionName(Context context) {
        String versionName = "";
        PackageManager packageManager = context.getPackageManager();// 获取PackageManager实例

        try {
            PackageInfo packInfo = packageManager.getPackageInfo(
                    context.getPackageName(), 0);// 获取程序包包信息
            versionName = packInfo.versionName;// 获取版本名称--versionName
        } catch (NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return versionName;
    }

    /**
     * TODO<获取应用版本号--versionCode>
     * 
     * @return String
     */
    public static String getVersionCode(Context context) {
        String versionCode = "";
        PackageManager packageManager = context.getPackageManager();// 获取PackageManager实例

        try {
            PackageInfo packInfo = packageManager.getPackageInfo(
                    context.getPackageName(), 0);// 获取程序包包信息
            versionCode = String.valueOf(packInfo.versionCode);// 获取版本号--versionCode
            return versionCode;
        } catch (NameNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return versionCode;
    }

    /**
     * TODO<获取设备的唯一标识ID>
     * 
     * @return String
     */
    public static String getDeviceId(Context context) {
        TelephonyManager tm = (TelephonyManager) context
                .getSystemService(Context.TELEPHONY_SERVICE);
        String deviceId = tm.getDeviceId();

        if (TextUtils.isEmpty(deviceId)) {
            return "";
        } else {
            return deviceId;
        }
    }

    /**
     * TODO<获取本机设备名称>
     * 
     * @return String
     */
    public static String getLocDeviceName() {
        return android.os.Build.MODEL;
    }

    /**
     * TODO<获取手机品牌>
     * 
     * @return String
     */
    public static String getPhoneBrand() {
        return android.os.Build.BRAND;
    }

    /**
     * TODO<获取手机型号>
     * 
     * @return String
     */
    public static String getPhoneModel() {
        return android.os.Build.MODEL;
    }

    /**
     * TODO< 获取手机Android API等级>
     * 
     * @return int
     */
    public static int getBuildLevel() {
        return android.os.Build.VERSION.SDK_INT;
    }

    /**
     * TODO<获取手机Android版本>
     * 
     * @return String
     */
    public static String getBuildVersion() {
        return android.os.Build.VERSION.RELEASE;
    }

    /**
     * TODO<获取App进程的ID>
     * 
     * @return int
     */
    public static int getAppProcessId() {
        return android.os.Process.myPid();
    }

    /**
     * TODO<将dp转为px>
     * 
     * @return int
     */
    public static int dpTopx(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * TODO<将px转为dp>
     * 
     * @return int
     */
    public static int pxTodp(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * TODO<获取设备宽度(px)>
     * 
     * @return int
     */
    public static int getDeviceWidth(Context context) {
        return context.getResources().getDisplayMetrics().widthPixels;
    }

    /**
     * TODO<获取设备高度(px)>
     * 
     * @return int
     */
    public static int getDeviceHeight(Context context) {
        return context.getResources().getDisplayMetrics().heightPixels;
    }

    /**
     * TODO<判断SD卡是否可用>
     * 
     * @return boolean
     */
    public static boolean isSDCardAvailable() {
        return Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值