Android获取设备各项信息(设备id、ip地址、APP应用名称、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名......)
(原创不易,你们对阿超的赞就是阿超持续更新的动力!)(以免丢失,建议收藏~~~)-----------------------------------------------------------------------获取设备id获取ip地址获取APP应用程序名称获取设备名称获取设备型号获取设备处理器获取设备品牌获取设备制造商获取设备oaid方案一方案二获取设备识别码方案一方案二获取mac地址获取应用包名获取应用签名获取app版本获取版本号获取分辨率获取国家码获取系统语言获取设备网络代码获取设备网络类型获取android版本获取操作系统版本获取目标sdk版本号获取应用第一次安装时间-----------------------------------------------------------------------联系阿超(可解疑解答,无偿)阿超QQ:2425991616阿超微信:2425991616阿超邮箱:2425991616@ || aboutgaojc@扫码添加阿超微信扫码添加阿超QQ欢迎关注阿超的公众号!如果这篇文章帮助到了您,这里还可以打赏博主哦~m_m(原创不易,你们对阿超的赞就是阿超持续更新的动力!)
(以免丢失,建议收藏~~~)
-----------------------------------------------------------------------
获取设备id
public static String getDeviceId() {if (context == null) {return "";}return DeviceIdentifier.getAndroidID(context);}
获取ip地址
public static String getIp() {String networkType = getNetworkType();if (networkType.equals("WiFi")) {WifiManager wifiManager = null;try {wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();int i = wifiInfo.getIpAddress();return intToIp(i);} catch (Exception e) {e.printStackTrace();return null;}} else if (networkType.equals("2G") || networkType.equals("3G") || networkType.equals("4G")) {try {for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {NetworkInterface intf = en.nextElement();for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {InetAddress inetAddress = enumIpAddr.nextElement();if (!inetAddress.isLoopbackAddress()) {return inetAddress.getHostAddress().toString();}}}} catch (Exception ex) {return null;}} else {return null;}return null;}/*** 将ip的整数形式转换成ip形式*/public static String intToIp(int i) {return (i & 0xFF) + "." +((i >> 8) & 0xFF) + "." +((i >> 16) & 0xFF) + "." +(i >> 24 & 0xFF);}
获取APP应用程序名称
/*** 获取APP应用程序名称*/public static String getAppName(Context context) {try {PackageManager packageManager = context.getPackageManager();PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);int labelRes = packageInfo.applicationInfo.labelRes;return context.getResources().getString(labelRes);} catch (Exception e) {e.printStackTrace();}return null;}
获取设备名称
public static String getDeviceName() {return Build.DEVICE;}
获取设备型号
public static String getDeviceModel() {return Build.MODEL;}
获取设备处理器
public static String getDeviceBoard() {return Build.BOARD;}
获取设备品牌
public static String getDeviceBrand() {return Build.BRAND;}
获取设备制造商
public static String getDeviceManufacturer() {return Build.MANUFACTURER;}
获取设备oaid
方案一
// build.gradle需要引入获取oaid库compileOnly 'com.github.gzu-liyujiang:Android_CN_OAID:4.2.3'
public static String getOAID() {if (Build.VERSION.SDK_INT < 29) {return DeviceIdentifier.getIMEI(context));} else {return DeviceIdentifier.getOAID(context));}}
方案二
public static String getOAID() {if (context == null) {return "";}if (DeviceID.supportedOAID(context)) {return DeviceID.getOAID();}return "";}
获取设备识别码
方案一
// build.gradle需要引入获取DeviceIdentifier类库compileOnly 'com.github.gzu-liyujiang:Android_CN_OAID:4.2.3'
public static String getImei() {if (Build.VERSION.SDK_INT < 29) {return DeviceIdentifier.getOAID(context));} else {return DeviceIdentifier.getIMEI(context));}}
方案二
public static String getImei() {TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);if (tm == null) {return "";}return tm.getDeviceId();}
获取mac地址
public static String getMac() {if (context == null) {return "";}WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);WifiInfo wi = wm.getConnectionInfo();if (wi == null || wi.getMacAddress() == null) {return "";}return wi.getMacAddress().trim();}
获取应用包名
public static String getPackageName() {if (context == null) {return "";}return context.getPackageName();}
获取应用签名
public static String getAppSignature() {if (context == null) {return "";}byte[] cert = new byte[0];try {PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);cert = packageInfo.signatures[0].toByteArray();} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return cert.toString();}
获取app版本
public static String getAppVersion() {if (context == null) {return "";}PackageManager pm = context.getPackageManager();PackageInfo pi = null;try {pi = pm.getPackageInfo(context.getPackageName(), 0);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return pi.versionName;}
获取版本号
public static int getVersionCode() {if (context == null) {return 0;}PackageManager pm = context.getPackageManager();PackageInfo pi = null;try {pi = pm.getPackageInfo(context.getPackageName(), 0);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return pi.versionCode;}
获取分辨率
public static String getResolution() {if (context == null) {return "";}DisplayMetrics dm = context.getResources().getDisplayMetrics();int widthPixels = dm.widthPixels;int heightPixels = dm.heightPixels;return widthPixels + "*" + heightPixels;}
获取国家码
public static String getCountry() {TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);if (tm == null) {return "";}return tm.getNetworkCountryIso();}
获取系统语言
public static String getLanguage() {return Locale.getDefault().getLanguage();}
获取设备网络代码
public static String getMccmnc() {TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);if (tm == null) {return "";}return tm.getNetworkOperator();}
获取设备网络类型
public static String getNetworkType() {ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (cm == null) {return "Unknown";}NetworkInfo activeNetInfo = cm.getActiveNetworkInfo();if (activeNetInfo == null || !activeNetInfo.isAvailable()) {return "Unknown";}NetworkInfo wifiInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (wifiInfo != null) {NetworkInfo.State state = wifiInfo.getState();if (state != null && state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {return "WiFi";}}NetworkInfo networkInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (networkInfo != null) {NetworkInfo.State state = networkInfo.getState();String subtypeName = networkInfo.getSubtypeName();if (state != null && state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {switch (activeNetInfo.getSubtype()) {case WORK_TYPE_GPRS:case WORK_TYPE_CDMA:case WORK_TYPE_EDGE:case WORK_TYPE_1xRTT:case WORK_TYPE_IDEN:return "2G";case WORK_TYPE_EVDO_A:case WORK_TYPE_UMTS:case WORK_TYPE_EVDO_0:case WORK_TYPE_HSDPA:case WORK_TYPE_HSUPA:case WORK_TYPE_HSPA:case WORK_TYPE_EVDO_B:case WORK_TYPE_EHRPD:case WORK_TYPE_HSPAP:return "3G";case WORK_TYPE_LTE:return "4G";default:if (subtypeName.equalsIgnoreCase("TD-SCDMA") || subtypeName.equalsIgnoreCase("WCDMA") || subtypeName.equalsIgnoreCase("CDMA2000")) {return "3G";}return "Unknown";}}}return "Unknown";}
获取android版本
public static int getAndroidVersion() {return Build.VERSION.SDK_INT;}
获取操作系统版本
public static String getOsVersion() {return Build.VERSION.RELEASE;}
获取目标sdk版本号
public static int getTargetSdkVer() {if (context == null) {return 0;}return context.getApplicationInfo().targetSdkVersion;}
获取应用第一次安装时间
public static long getFirstInstallTime() {if (context == null) {return 0;}PackageManager pm = context.getPackageManager();PackageInfo packageInfo = null;try {packageInfo = pm.getPackageInfo(context.getPackageName(), 0);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return packageInfo.firstInstallTime;}
-----------------------------------------------------------------------
联系阿超
(可解疑解答,无偿)
阿超QQ:2425991616
阿超微信:2425991616
阿超邮箱:2425991616@ || aboutgaojc@
扫码添加阿超微信
扫码添加阿超QQ
欢迎关注阿超的公众号!
如果这篇文章帮助到了您,这里还可以打赏博主哦~m_m
Android获取设备各项信息(设备id ip地址 设备名称 运行商 品牌 型号 分辨率 处理器 国家码 系统语言 网络类型 oaid android版本 操作系统版本 mac地址 应用程序签名..)