Android工具类——获取wifi模块MAC地址
public class MacUtil {/*** 获取mac地址(适配所有Android版本)** @return*/public static String getMac(Context context) {String mac = "";if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {mac = getMacDefault(context);} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {mac = getMacAddress();} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {mac = getMacFromHardware();}return mac;}/*** Android 6.0 之前(不包括6.0)获取mac地址* 必须的权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>** @param context * @return*/public static String getMacDefault(Context context) {String mac = "";if (context == null) {return mac;}WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);WifiInfo info = null;try {info = wifi.getConnectionInfo();} catch (Exception e) {e.printStackTrace();}if (info == null) {return null;}mac = info.getMacAddress();if (!TextUtils.isEmpty(mac)) {mac = mac.toUpperCase(Locale.ENGLISH);}return mac;}/*** Android 6.0-Android 7.0 获取mac地址* android 6.0以后 将不再能通过 wifimanager 获取mac,获取到的mac将是固定的:02:00:00:00:00:00 。android sdk后来做了6.0适配,通过cat /sys/class/net/wlan0/address,可以在6.0上获取mac地址*/public static String getMacAddress() {String macSerial = null;String str = "";try {Process pp = Runtime.getRuntime().exec("cat/sys/class/net/wlan0/address");InputStreamReader ir = new InputStreamReader(pp.getInputStream());LineNumberReader input = new LineNumberReader(ir);while (null != str) {str = input.readLine();if (str != null) {macSerial = str.trim();//去空格break;}}} catch (IOException ex) {// 赋予默认值ex.printStackTrace();}return macSerial;}/*** Android 7.0之后获取Mac地址* 遍历循环所有的网络接口,找到接口是 wlan0* 必须的权限 <uses-permission android:name="android.permission.INTERNET"></uses-permission>** @return*/public static String getMacFromHardware() {String strMacAddr = null;try {//获得IpD地址InetAddress ip = getLocalInetAddress();byte[] b = NetworkInterface.getByInetAddress(ip).getHardwareAddress();StringBuffer buffer = new StringBuffer();for (int i = 0; i < b.length; i++) {if (i != 0) {buffer.append(':');}String str = Integer.toHexString(b[i] & 0xFF);buffer.append(str.length() == 1 ? 0 + str : str);}strMacAddr = buffer.toString().toUpperCase();} catch (Exception e) {}return strMacAddr;}/*** 获取移动设备本地IP** @return*/private static InetAddress getLocalInetAddress() {InetAddress ip = null;//列举Enumeration<NetworkInterface> en_netInterface = null;try {en_netInterface = NetworkInterface.getNetworkInterfaces();} catch (SocketException e) {e.printStackTrace();}while (en_netInterface.hasMoreElements()) {//是否还有元素NetworkInterface ni = (NetworkInterface) en_netInterface.nextElement();//得到下一个元素Enumeration<InetAddress> en_ip = ni.getInetAddresses();//得到一个ip地址的列举while (en_ip.hasMoreElements()) {ip = en_ip.nextElement();if (!ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1)break;else ip = null;}if (ip != null) {break;}}return ip;}}
Android工具类——获取wifi模块MAC地址相关推荐
- Android工具类获取上下文对象
在Android开发中,我们经常会遇到在一个类中获取当前的上下文对象,比如:我们要写一个Notification对象做弹出通知,我们应该写在全局里边.方法:自定义MyApplication继承Appl ...
- android获取wifi mac地址吗,Android获取当前WiFi的MAC地址-适配所有版本
** Android获取当前WiFi的MAC地址 ** package com.dogness.platform.utils; import android.content.Context; impo ...
- Android studio 获取设备的Mac地址,wifi和以太网均可使用
/*** 获取设备的Mac地址* @return Mac地址*/public static String getLocalMacAddress() {String Mac=null;try{Strin ...
- android 获取网卡mac_Android获取本机Mac地址及IP地址方法
1.Android 获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...
- android 获取设备的mac地址,Android编程获取设备MAC地址的实现方法
本文实例讲述了Android编程获取设备MAC地址的实现方法.分享给大家供大家参考,具体如下: /** * 获取设备的mac地址 * * @param ac * @param callback * 成 ...
- Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...
- Android中获取手机 IMEI Mac地址 IP地址
一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...
- iOS 获取连接的WiFi和Mac地址
最近做了一个WiFi的硬件APP,需要用到当前手机链接的WiFi名字和Mac地址,这种场景使用,其实,在打卡软件中,应该比较常用,比如打卡需要连接到公司的WiFi,就是保证你在办公室打的卡. 刚开始使 ...
- android 获取mac c语言,获取设备的mac地址和IP地址(android6.0以上专用)
/** * 获取设备HardwareAddress地址 * @return */ public static String getMachineHardwareAddress(){ Enumerati ...
最新文章
- C++ break语句,continue语句,goto语句
- 传感器c语言开发,Android环境传感器开发教程
- 服务器连接kvm不显示,kvm切换器使用中易出现问题及简单解决方式
- 用新语法写更简洁的ABAP代码
- 6月第一周国内域名解析商:万网继续抢占DNSPod份额
- MYSQL常用函数以及分组操作
- 深入解读无服务器架构下的数据库
- 计算机组成要素六:编译器 语法分析器
- 滴滴新增对手!腾讯投资的网约车平台OnTime或将于本月上线
- 关于Vue.js的v-for,key的顺序改变,影响过渡动画表现
- java swing企业人事管理系统 java swing mysql实现的企业人事管理系统源码和导入文档(1013)
- 17zwd获得17网商品详情接口 API 返回值说明,API接口获取方案
- 凯文·凯利:流动、共享、颠覆,未来20年的 12大技术趋势
- 花了两天时间用html+css+js做了一个网页版坦克大战游戏
- SQL语句增删改查公司-员工3表典型案例
- 黄鸟抓包app(httpcanary)
- 【HTML+CSS】页内侧边导航栏 页内导航
- Java、JSP外卖订餐系统
- React : React手脚架的使用
- web前端html+css+js 简单模仿敲木鱼