android获取当前手机设备信息工具类

来源:互联网 发布:手游网络加速 编辑:程序博客网 时间:2024/05/16 08:44

public class DeviceTool {

    /**
     * 获取当前设置的电话号码
     */
    public static String getNativePhoneNumber(Context context) {
        String nativePhoneNumber = "";
        try {
            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            nativePhoneNumber = telephonyManager.getLine1Number();
        } catch (Exception e) {
            nativePhoneNumber = "";
        }
        return nativePhoneNumber;
    }

    /**
     * 获取设备序列号
     */
    public static String getDeviceId(Context context) {
        String deviceId = "";
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        deviceId = telephonyManager.getDeviceId();
        if (deviceId == null || "".equals(deviceId)) {
            deviceId = "0000000000";
        }
        return deviceId;
    }

    /**
     * @description:获取设备唯一标识
     */
    public static String getDeviceUni(Context context) {
        String deviceUni = "";
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        deviceUni = tm.getDeviceId();
        if (TextUtils.isEmpty(deviceUni)) {
            deviceUni = getMacAddress(context);
        }
        return deviceUni;
    }

    /**
     * @description:获取wifimac地址
     */
    public static String getMacAddress(Context context) {
        WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifi.getConnectionInfo();
        String wifiMac = info.getMacAddress();
        return wifiMac;
    }

    /**
     * 获得一个去掉"-"符号的UUID
     */
    public static String getUUID() {
        String s = UUID.randomUUID().toString();
        // 去掉"-"符号
        return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
    }

    /**
     * 判断是否已连接到网络.
     */
    public static boolean isNetworkConnected(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo info = connectivity.getActiveNetworkInfo();
            if (info != null && info.isConnected()) {
                if (info.getState() == NetworkInfo.State.CONNECTED) { return true; }
            }
        }
        return false;
    }

    /**
     * 检查网络接连类型.
     *
     * @param context
     * @return SysConstants.NETWORK_TYPE_NONE: 无网络连接;
     *         SysConstants.NETWORK_TYPE_WIFI: 通过WIFI连接网络;
     *         SysConstants.NETWORK_TYPE_WAP: 通过GPRS连接网络.
     */
    public static int checkNetWorkType(Context context) {
        if (isAirplaneModeOn(context)) { return Constant.NETWORK_TYPE_NONE; }

        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { return Constant.NETWORK_TYPE_NET; }

        if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED) {
            String type = connectivityManager.getActiveNetworkInfo().getExtraInfo();
            if ("wap".equalsIgnoreCase(type.substring(type.length() - 3))) {
                return Constant.NETWORK_TYPE_WAP;
            } else {
                return Constant.NETWORK_TYPE_NET;
            }
        }

        return Constant.NETWORK_TYPE_NONE;
    }

    /**
     * 判断手机是否处于飞行模式.
     *
     * @param context
     * @return
     */
    public static boolean isAirplaneModeOn(Context context) {
        return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0;
    }

    /**
     * 判断手机SDCard是否已安装并可读写.
     *
     * @return
     */
    public static boolean isSDCardUsable() {
        return Environment.MEDIA_MOUNTED.equalsIgnoreCase(Environment.getExternalStorageState());
    }

    /**
     * 获取指定的SDCard中图片缓存目录.
     *
     * @param defaultImageFolderName
     * @return
     */
    public static File getImgCacheDir(String defaultImageFolderName) {
        if (isSDCardUsable()) {
            File dir = new File(Environment.getExternalStorageDirectory(), defaultImageFolderName);
            if (!dir.exists())
                dir.mkdirs();

            return dir;
        }
        return null;
    }

    /**
     * 隐藏某焦点控件弹出的软件键盘.
     *
     * @param context
     * @param view
     */
    public static void hideSoftKeyboardFromView(Context context, View view) {
        InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Service.INPUT_METHOD_SERVICE);
        IBinder binder = view.getWindowToken();
        inputMethodManager.hideSoftInputFromWindow(binder, 0);
    }

    /**
     * 获取SDcard根目录
     * @description:
     */
    public static String getSDPath() {
        File sdDir = null;
        boolean sdCardExist = Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED);
        if (sdCardExist) {
            sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
        } else {
            sdDir = new File("/mnt/sdcard/");
            if (!sdDir.exists() || !sdDir.canRead() || !sdDir.canWrite()) { return ""; }
        }
        return sdDir.getAbsolutePath();
    }
}

0 0
原创粉丝点击