Android设备信息管理工具类

原创 2018年04月16日 17:22:23

public class DeviceInfoUtils {

/**
 * 获取手机设备名
 *
 * @return
 */
public static String getDeviceModel() {
    return Build.MODEL;
}

/**
 * 获取系统sdk版本号
 *
 * @return
 */
public static String getSystemSdkVersion() {
    return Build.VERSION.RELEASE;
}

/**
 * 获取系统当前语言
 *
 * @return
 */
public static String getSystemLanguage() {
    return Locale.getDefault().getLanguage();
}

/**
 * 获取手机IMEI
 *
 * @param context
 * @return
 */
public static String getIMEI(Context context) {
    TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    return tm.getDeviceId();
}


/**
 * 获取手机imsi
 * 国际移动用户识别码
 *
 * @param context
 * @return
 */
public static String getIMSI(Context context) {
    TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
    return tm.getSubscriberId();
}

/**
 * 获取AndroidId
 *
 * @param context
 * @return
 */
public static String getAndroidId(Context context) {
    return Settings.System.getString(context.getContentResolver(), Settings.System.ANDROID_ID); // 获取AndroidId
}

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

/**
 * 获取设备的唯一标识
 *
 * @param context
 * @return 唯一标识字符串
 */
public static String getDeviceUUID(Context context) {
    String uuid = getIMEI(context);
    if (TextUtils.isEmpty(uuid)) {
        uuid = getWifiMac(context);
    }
    if (TextUtils.isEmpty(uuid)) {
        uuid = getAndroidId(context);
    }
    if (TextUtils.isEmpty(uuid)) {
        uuid = autoGenerateUUID(context);
    }
    return uuid;
}

/**
 * 获取一个uniqueid
 *
 * @param context
 * @return
 */
public static String autoGenerateUUID(Context context) {
    SharedPreferences preferences = context.getSharedPreferences("cacheMap", Context.MODE_PRIVATE);
    String uuid = preferences.getString("uuid", "");
    if (TextUtils.isEmpty(uuid)) {
        uuid = UUID.randomUUID().toString();
        preferences.edit().putString("uuid", uuid);
    }
    return uuid;
}

/**
 * 获取一个uuid
 *
 * @return
 */
public static String createUUID() {
    return UUID.randomUUID().toString();
}


/**
 * 获取系统类型
 *
 * @return
 */
public static String getOS() {
    return "android";
}


/**
 * 是否高于4.4版本
 *
 * @return boolean
 * @auther snubee
 */
public static boolean isKitKat() {
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
}

public static class ScreenInfo {
    public int   width;
    public int   height;
    public float density;

}

/**
 * 获取屏幕参数
 *
 * @param context
 * @return
 */
public static ScreenInfo getScreenInfo(Context context) {
    ScreenInfo info = new ScreenInfo();
    DisplayMetrics dm = new DisplayMetrics();
    WindowManager windowManager = (WindowManager) context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
    windowManager.getDefaultDisplay().getMetrics(dm);
    info.width = dm.widthPixels;
    info.height = dm.heightPixels;
    info.density = dm.density;
    return info;
}

/**
 * 获取屏幕参数 如: 1280*1080
 *
 * @param context
 * @return
 */
public static String getScreenInfos(Context context) {
    DisplayMetrics dm = new DisplayMetrics();
    WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    windowManager.getDefaultDisplay().getMetrics(dm);
    return dm.heightPixels + "*" + dm.widthPixels;
}

/**
 * @desc 是否有摄像头权限
 * @create by snubee
 * @time 2016/3/2 17:00
 */
public static boolean checkCameraPermission(Context activity) {
    int res = activity.checkCallingOrSelfPermission("android.permission.CAMERA");
    return (res == PackageManager.PERMISSION_GRANTED);
}

// 检查调用者是否具有 permission权限
// 此方法仅在调用IPC(interprocess communication)方法时有用
public static boolean checkPermission(Context context, String permission) {
    //检查如果是当前应用则返回真
    if (Binder.getCallingPid() == android.os.Process.myPid()) {
        if (context.checkCallingPermission(permission) == PackageManager.PERMISSION_GRANTED) {
            return true;
        }
    }
    return false;
}

/**
 * @desc 获取底部虚拟导航栏高度
 * @create by lion
 * @time 2016/5/24 17:00
 */
public static int getNavigationBarHeight(Context activity) {
    Resources resources = activity.getResources();
    int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
    int height = resources.getDimensionPixelSize(resourceId);
    return height;
}

/**
 * @desc 获取顶部状态航栏高度
 * @create by lion
 * @time 2016/5/24 17:00
 */
public static int getStatusBarHeight(Context activity) {
    Resources resources = activity.getResources();
    int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
    int height = resources.getDimensionPixelSize(resourceId);
    return height;
}

@SuppressLint("NewApi")
public static boolean checkDeviceHasNavigationBar(Context activity) {

    //通过判断设备是否有返回键、菜单键(不是虚拟键,是手机屏幕外的按键)来确定是否有navigation bar
    boolean hasMenuKey = ViewConfiguration.get(activity)
            .hasPermanentMenuKey();
    boolean hasBackKey = KeyCharacterMap
            .deviceHasKey(KeyEvent.KEYCODE_BACK);

    return !hasMenuKey && !hasBackKey;
}

/**
 * 获取手机品牌(厂商)
 *
 * @return
 */
public static String getDeviceOem() {
    return Build.MANUFACTURER;
}


/**
 * 获取设备系统版本号 如: 8
 *
 * @return 设备系统版本号
 */
public static String getSDKVersion() {
    return String.valueOf(android.os.Build.VERSION.SDK_INT);
}


public static String getDeviceSimOperator(Context mContext) {
    String telManagerName = "";
    TelephonyManager telManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
    String operator = telManager.getSimOperator();
    if (operator != null) {

        if (operator.equals("46000") || operator.equals("46002") || operator.equals("46007")) {

            //中国移动
            telManagerName = "CMCC";
        } else if (operator.equals("46001")) {

            //中国联通
            telManagerName = "CUCC";
        } else if (operator.equals("46003")) {

            //中国电信
            telManagerName = "CTCC";
        }

    }
    return telManagerName;
}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34942689/article/details/79963514

XML经典问答

XML经典问答一.HTML已经这样流行了,为什么还要发展XML?简单地讲,HTML不能完成,我们希望XML所要完成的任务。原因很简单,XML所要完成的任务,必须由元置标语言来完成,而HTML只是一个实...
  • eternalee
  • eternalee
  • 2001-10-10 23:09:00
  • 766

android开发之工具类:获取手机设备的一些数据DeviceUtil

import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import ...
  • tabolt
  • tabolt
  • 2016-07-14 14:44:11
  • 2136

获取android设备常用信息工具类

  • 2011年09月22日 16:30
  • 8KB
  • 下载

Android-设备工具类JDeviceUtil

/** * 设备工具类 * Created by Jzd on 2017/12/8. */ public class JDeviceUtil { public static Disp...
  • u013318615
  • u013318615
  • 2017-12-08 17:07:00
  • 51

Android获取手机经纬度(GPS、NetWork)封装工具类

简单封装了一下,获取简单,看代码: import android.content.Context; import android.location.Location; import androi...
  • yy1300326388
  • yy1300326388
  • 2015-08-06 11:33:57
  • 7089

使用Andorid原生工具类获取手机经纬度

对于不使用任何第三方地图sdk的设备,可以直接获取gps传感器,基站传感器,wifi传感器所获取的经纬度,一般写一个service放在后台,代码如下 import android.app.Inte...
  • lvshaorong
  • lvshaorong
  • 2015-12-03 08:49:49
  • 2548

Android获取本机IPv4地址

获取本机IPv4地址可分两种情况,一种是WiFi已开启,一种是蜂窝移动数据已开启。 1、WiFi已开启WiFi开启的情况下,通过WiFi获取本机IP地址,如果仅仅打开WiFi,但并未接入网络,则IP地...
  • u012939909
  • u012939909
  • 2016-12-19 21:09:07
  • 403

Android开发之强大的网络判断工具,判断是否联网,判断是wifi还是3g网络等java工具代码类

  • 2016年07月01日 10:43
  • 3KB
  • 下载

Android--获取屏幕高宽度工具类

//获得屏幕相关的辅助类 public class ScreenUtils { private ScreenUtils() { /* cannot be instant...
  • li5685918
  • li5685918
  • 2016-02-26 15:24:16
  • 5558

设备信息管理

  • 2013年04月26日 21:11
  • 13KB
  • 下载
收藏助手
不良信息举报
您举报文章:Android设备信息管理工具类
举报原因:
原因补充:

(最多只允许输入30个字)