android 获取设备的serialNumber和Mac地址
1.获取SerialNumber
private static String getSerialNumber() {String serial = null;try {Class<?> c = Class.forName("android.os.SystemProperties");Method get = c.getMethod("get", String.class);serial = (String) get.invoke(c, "ro.serialnocustom");} catch (Exception e) {e.printStackTrace();}return serial;}
2.获取mac
private static final String marshmallowMacAddress = "02:00:00:00:00:00"; private static final String fileAddressMac = "/sys/class/net/wlan0/address"; public static String getAdresseMAC(Context context) {WifiManager wifiMan = (WifiManager)context.getSystemService(Context.WIFI_SERVICE) ; WifiInfo wifiInf = wifiMan.getConnectionInfo(); if(wifiInf !=null && marshmallowMacAddress.equals(wifiInf.getMacAddress())){String result = null; try {result= getAdressMacByInterface(); if (result != null){return result; } else {result = getAddressMacByFile(wifiMan); return result; }} catch (IOException e) {Log.e("MobileAccess", "Erreur lecture propriete Adresse MAC"); } catch (Exception e) {Log.e("MobileAcces", "Erreur lecture propriete Adresse MAC "); }} else{if (wifiInf != null && wifiInf.getMacAddress() != null) {return wifiInf.getMacAddress(); } else {return ""; }}return marshmallowMacAddress; }/** * 通过接口获取mac * @return */ private static String getAdressMacByInterface(){try {List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface nif : all) {if (nif.getName().equalsIgnoreCase("wlan0")) {byte[] macBytes = nif.getHardwareAddress(); if (macBytes == null) {return ""; }StringBuilder res1 = new StringBuilder(); for (byte b : macBytes) {res1.append(String.format("%02X:",b)); }if (res1.length() > 0) {res1.deleteCharAt(res1.length() - 1); }return res1.toString(); }}} catch (Exception e) {Log.e("MobileAcces", "Erreur lecture propriete Adresse MAC "); }return null; }/** * 通过文件获取mac * @param wifiMan * @return * @throws Exception */ private static String getAddressMacByFile(WifiManager wifiMan) throws Exception {String ret; int wifiState = wifiMan.getWifiState(); wifiMan.setWifiEnabled(true); File fl = new File(fileAddressMac); FileInputStream fin = new FileInputStream(fl); ret = crunchifyGetStringFromStream(fin); fin.close(); boolean enabled = WifiManager.WIFI_STATE_ENABLED == wifiState; wifiMan.setWifiEnabled(enabled); return ret; }private static String crunchifyGetStringFromStream(InputStream crunchifyStream) throws IOException {if (crunchifyStream != null) {Writer crunchifyWriter = new StringWriter(); char[] crunchifyBuffer = new char[2048]; try {Reader crunchifyReader = new BufferedReader(new InputStreamReader(crunchifyStream, "UTF-8")); int counter; while ((counter = crunchifyReader.read(crunchifyBuffer)) != -1) {crunchifyWriter.write(crunchifyBuffer, 0, counter); }} finally {crunchifyStream.close(); }return crunchifyWriter.toString(); } else {return "No Contents"; } }
android 获取设备的serialNumber和Mac地址相关推荐
- Android获取设备的SerialNumber(SN)串号以及WIFIMac值
获取设备SN 版本较高可以参考 private static String getSerialNumber() {String serial = null;try {Class<?> c ...
- Android获取手机及路由器的Mac地址和IP地址
Android获取Mac地址及IP地址需要添加权限, 在AndroidManifest.xml中: <uses-permission android:name="android.per ...
- Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...
- Android获取手机IMEI,IMSI, MAC标识和唯一标识的生成
急的直接看这个: android 获取设备IMEI与序列号: //IMEI(imei) TelephonyManager tm = (TelephonyManager) ChinaApplicat ...
- python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例
这篇文章主要为大家详细介绍了python 获取本机IP.mac地址.计算机名的简单示例,具有一定的参考价值,可以用来参考一下. 对python获取本机IP.mac地址.计算机名感兴趣的小伙伴,下面一起 ...
- Android获取设备状态栏status bar高度的正确姿势
Android获取设备状态栏高度的正确姿势 正确代码方式: int height = 0;int resourceId = getApplicationContext().getResources() ...
- 【备忘】Android获取正在使用网络的IP4地址
[备忘]Android获取正在使用网络的IP4地址 public String getLocalIpAddress() { String ipaddress="";try { fo ...
- Android获取设备ID号
Android获取设备ID号 Android有多种方式可以获取设备ID,但是每一种总会有一点限制,为此,整合几种方式在一起,这样就万无一失了 public class DeviceIdFactory ...
- Android 获取设备号
前言 最近在对接口的时候 根据后台要求生成设备唯一id 作为key android 获取设备号比较简单 这里记录一下 实现 /*** 获取设备号* @param context* @return*/p ...
- Android -- 获取设备硬件信息
Android – 获取设备硬件信息 通过 Build 获取指定字段信息: 信息 方法 例子 主板 Build.BOARD PAR 系统定制商 Build.BRAND HUAWEI 硬件名称 Buil ...
最新文章
- 牛客多校第六场 E Androgynos 自补图
- 电脑亮度多少对眼睛好_鲁大师性能测试多少分算好电脑?
- C语言 | 结构体数组
- java thrift连接池_由浅入深了解Thrift之客户端连接池化
- 这款折纸机器人玩具,可以帮助孩子学习编程和Robot知识
- Kubernetes-基于EFK进行统一的日志管理原理(kibana查询语法)
- ArcGIS Engine开发前基础知识(3)
- 超详细MySQL安装及基本使用教程
- 解决谷歌导入Vue开发工具没反应的问题
- 初入算法岗的切身经验之谈:干什么?怎么干?如何学?
- Bean初始化错误:Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
- proxychains DNS解析失败问题
- 实体与实体之间的联系
- Qt 中信号和槽机制
- 第四章:CPU体系结构笔记
- 马明哲辞任中国平安CEO;Shake Shack将进驻中国华南首站深圳 | 美通企业日报
- 周易六十四卦——震为雷卦
- 智慧商圈支付宝小程序(ISV系统服务商开发模式)
- 【微服务实战】什么是微服务,微服务怎么实施?
- 搭建kms服务实现window激活