Android手机获取Mac地址的几种方法,androidmac

最常用的方法,通过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及其以下版本都可以获取到。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对登博教程的支持。如果你想了解更多相关内容请查看下面相关链接

http://www.dengb.com/androidjc/1340005.htmlwww.dengb.comtruehttp://www.dengb.com/androidjc/1340005.htmlTechArticleAndroid手机获取Mac地址的几种方法,androidmac 最常用的方法,通过WiFiManager获取: /** * 通过WiFiManager获取mac地址 * @param context * @return */ private...

android 取mac地址,Android手机获取Mac地址的几种方法,androidmac相关推荐

  1. android图案解锁忘了怎么解,手机图案解锁忘了怎么办 三种方法轻松解决【图文】...

    随着智能机的普及,手机上锁方法也有了新的方式,除了以前传统的密码锁之外,手机还添加了极富趣味的图案锁.九宫格形式的图案锁屏,看上去不仅新颖,而且锁屏更加方面,这种锁屏很快就受到不少用户的喜爱!可是在使 ...

  2. php获取手机的mac地址,Android手机获取Mac地址的方法

    [导读]这篇文章主要为大家详细介绍了Android手机获取Mac地址的方法,具有一定的参考价值 最常用的方法,通过WiFiManager获取:/** * 通过WiFiManager获取mac地址 *  ...

  3. Android手机获取IP地址的两种方法

    Android手机获取IP地址的两种方法 本文章讲解了WIFI和GPRS两种情况下获取手机IP地址的方法 1.使用WIFI 1,首先设置用户权限 AndroidManifest.xml添加: < ...

  4. Android 判断当前设备是手机还是平板的最有效的方法

    温馨提示! 温馨提示! 温馨提示! 这篇文章所提供的解决方案有瑕疵,最新的解决方案详见此文章<Android 判断当前设备是手机还是平板的最有效的方法[2022版]> 1. 前言 如果你百 ...

  5. 安卓手机获取IP地址

    安卓手机获取IP地址有两种方法: 一.请求获取IP地址的接口 许多获取IP地址的网站都有这个功能,例如我项目中用到过的接口 http://pv.sohu.com/cityjson?ie=utf-8, ...

  6. root android oppo,OPPO R9S怎么ROOT oppor9s获取root权限的两种方法

    OPPO R9S如何ROOT呢?作为一款最新的OPPO系列智能手机,对于刚入手的用户而言,可能不知该如何获取OPPO R9S手机ROOT权限.下面就与大家分享一下获取OPPO R9S手机ROOT权限的 ...

  7. Android实现截屏和截长图功能的几种方法

    一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来. 如果开发中想要调 ...

  8. linux下logcat命令,Android shell命令行中过滤adb logcat输出的几种方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb lo ...

  9. php 获取一串随机字符串,php获取随机字符串的几种方法

    方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍) /** * 获得随机字符串 * @param $len 需要的长度 * @param $special ...

最新文章

  1. Shell脚本逐行处理文本文件技巧
  2. CentOS7(64位)安装Jupyter Notebook
  3. python 内存不足 dict 替代方案_2D数组代表一个巨大的python dict,COOrdinate就像解决方案来节省内存...
  4. 给thinkphp3.2用上composer
  5. python k线图 动态刷新不了_ImageButton点击之后不动态刷新页面的解决方案
  6. QML的import目录爬坑记录
  7. android ListView实现下拉上拉刷新功能
  8. 苹果MacBook Air 2022款也将有刘海屏设计
  9. 提高sql性能的方法_三种提高T-SQL性能的方法
  10. debian安装什么mysql_安装多个mysql实例(debian版本)
  11. mysql之查询某段时间范围的数据
  12. Atitit 延迟绑定架构法attilax总结
  13. u盘写保护+计算机管理,U盘写保护的解决方法
  14. [NOIP2007]矩阵取数游戏(详细题解、含多种思路)
  15. 微信自动发卡机器人说明
  16. 从事java开发工作三年的感想
  17. BUUCTF之Ping Ping Ping
  18. 关于谷歌浏览器默认首页为好123的解决办法
  19. C语言string中常用方法
  20. 正版win7系统下载重装教程

热门文章

  1. MedCalc 中文官方网站 专业生物医学研究统计工具软件
  2. vue vuex使用_使用Vue和Vuex的记分板
  3. 麒麟710f能否升级到鸿蒙系统,搭载华为麒麟710芯片以上的机型或都能升级鸿蒙系统...
  4. UG二次开发 拔模功能实现
  5. grid网格布局。逆战班
  6. 某mm骂他男友,都不带脏字
  7. 陈宝林《最优化理论与算法》超详细学习笔记 (八)————最优性条件
  8. html保留两位小数php,JS保留两位小数输入数校验代码
  9. SAP FI 基础概念总结
  10. 协同设计有什么优势?都有哪些协同设计软件