最常用的方法,通过WiFiManager获取:

/**

* 通过WiFiManager获取mac地址

* @param context

* @return

*/

private static String tryGetWifiMac(Context context) {

WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

WifiInfo wi = wm.getConnectionInfo();

if (wi == null || wi.getMacAddress() == null) {

return null;

}

if ("02:00:00:00:00:00".equals(wi.getMacAddress().trim())) {

return null;

} else {

return wi.getMacAddress().trim();

}

}

这个方法Android 7.0是获取不到的,返回的是null,其实是返回“02:00:00:00:00:00”

根据本地IP获取:

/**

* 根据IP地址获取MAC地址

*

* @return

*/

private static String getLocalMacAddressFromIp() {

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;

try {

//列举

Enumeration en_netInterface = NetworkInterface.getNetworkInterfaces();

while (en_netInterface.hasMoreElements()) {//是否还有元素

NetworkInterface ni = (NetworkInterface) en_netInterface.nextElement();//得到下一个元素

Enumeration 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;

}

}

} catch (SocketException e) {

e.printStackTrace();

}

return ip;

}

这个方法Android 7.0及其以下版本都可以获取到。

根据网络接口获取:

/**

* 通过网络接口取

* @return

*/

private static String getNewMac() {

try {

List all = Collections.list(NetworkInterface.getNetworkInterfaces());

for (NetworkInterface nif : all) {

if (!nif.getName().equalsIgnoreCase("wlan0")) continue;

byte[] macBytes = nif.getHardwareAddress();

if (macBytes == null) {

return null;

}

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 ex) {

ex.printStackTrace();

}

return null;

}

注意网络接口的Name有跟多:dummy0、p2p0、wlan0....其中wlan0就是我们需要WiFi mac地址。这个方法Android 7.0及其以下版本都可以获取到。

声明:游戏堡网登载此文出于传递信息之目的,不代表游戏堡网赞同其观点或证实其描述,若侵权请来信告知,我们将及时处理。

如何获取android手机mac地址,Android手机如何获取Mac地址相关推荐

  1. android+手机mac地址,Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...

  2. Android 手机上获取手机当前上网IP地址(手机网关给手机号分配的IP)

    Android 手机上获取手机当前上网IP地址 (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手机号分配一个IP地址(当然这个IP地址会在下线上线后会改变,网关都有记录的 ...

  3. android获取路由器ip地址吗,手机查看路由器设置网址(登录IP地址)的方法

    "路由器设置网址是什么?之前修改过路由器的设置网址,现在忘记了是多少,那么此时应该怎么办?"或许大家在使用自家路由器时,遇到了不知道设置网址是多少的问题.下面就来为大家介绍通过手机 ...

  4. android动态mac地址,android 设备唯一码的获取,Cpu号,Mac地址

    赞0 开发Android应用中,我们常常需要设备的唯一码来确定客户端. Android 中的几中方法,使用中常常不可靠 1. DEVICE_ID 假设我们确实需要用到真实设备的标识,可能就需要用到DE ...

  5. android 获取手机SD卡和手机的内部存储

    在开发过程中有时候会获取手机的SD存储使用状况. 布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/re ...

  6. Android检查手机是否Root以及应用是否获取Root权限

    在Android中如何判断手机是否Root以及应用是否获取了Root权限,下面我们将对开源项目RootTools的源码进行分析. RootTools的源码地址:https://github.com/S ...

  7. java编程手机gps定位_GPS 获取Gps定位信息的Android源码实例,通过这个JAVA 目,你可能学会GPS在 手机 238万源代码下载- www.pudn.com...

    文件名称: GPS下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 59 KB 上传时间: 2013-04-08 下载次数: 22 详细说明:获取Gps定位信息的A ...

  8. Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法)!

    大家好,我们这一节讲一下,Android获取Ip的一些方法,在我们开发中,有判断手机是否联网,或者想获得当前手机的Ip地址,当然WIFI连接的和 我们3G卡的Ip地址当然是不一样的. 首先我尝试了如下 ...

  9. android手机文件储存地址,Android手机缓存的位置

    在Android手机里面,缓存的位置分为两类,一类是Internal Storage,即内部存储,另外一类是External Storage,即外部存储. 比较老的手机,有一个手机内部存储,还有一个S ...

  10. 如何使用Aimersoft iMusic for Mac从 Android 手机备份歌曲到 PC/Mac?

    如果计算机上没有副本,最好将 Android 手机中的歌曲备份到计算机上,因为我们永远不知道歌曲何时会因恢复出厂设置或病毒攻击而丢失.Aimersoft iMusic for Mac可以通过 2 个简 ...

最新文章

  1. JS数组去重的6种算法实现
  2. 物联网、云计算、大数据、人工智能之间有怎样的联系和区别?
  3. STM32寄存器与输入捕获
  4. DCMTK:测试DcmItem的newDicomElement()辅助方法
  5. ROS学习(九)—— rqt_console 和 roslaunch
  6. python3兼容python2 print_python 字符串 r raw Python2 和 Python3 的区别及兼容技巧
  7. cctv系统车站服务器功能,CCTV系统
  8. Mvvm 前端数据流框架精讲
  9. javascript打印1-100内的质数
  10. 对HGE游戏引擎的一次封装
  11. 实践项目二:图书馆管理系统 总结
  12. python下载网页上的pdf文件_利用Python把网页内容转换为pdf格式文件,批量下载到本地!...
  13. 基于STM32的NRF24L01模块一对一的问题记录
  14. 浅析json_encode
  15. 离散数学知识点总结(3):等值演算,16个命题定律 / 基础等价式,重言式的替换规则,证明有效性和可满足性的方法
  16. 不是谁多情,亦不是谁薄情
  17. 获取当天日期的前一天或前几天,查询一天内的数据
  18. 机器学习(八):CS229ML课程笔记(4)——生成学习,高斯判别分析,朴素贝叶斯
  19. python制作英语字典_python制作英文学习字典案列
  20. C#控制台程序输出杨辉三角

热门文章

  1. 大三实习生面试BAT经验
  2. 掌握算法本质背后的计算思维,尽在吴军博士《计算之魂》这本书中
  3. 如何评价 IEEE Access 成为了 Top 期刊?
  4. 超大日志文件分割方法
  5. 特殊字符的处理 GS RS EOT
  6. 发现把图片拖放到百度翻译(fanyi.baidu.com)的文本框里,就能识别出图片里的文字
  7. 假装自己升级了Win11~
  8. 【影评】海贼王:855
  9. R语言笔记3_回归分析(EDA OLS Power)
  10. 医疗图像论文笔记二:《Learning to recognize Abnormalities in Chest X-Rays with Location-Aware Dense Networks》