android 取mac地址,Android手机获取Mac地址的几种方法,androidmac
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相关推荐
- android图案解锁忘了怎么解,手机图案解锁忘了怎么办 三种方法轻松解决【图文】...
随着智能机的普及,手机上锁方法也有了新的方式,除了以前传统的密码锁之外,手机还添加了极富趣味的图案锁.九宫格形式的图案锁屏,看上去不仅新颖,而且锁屏更加方面,这种锁屏很快就受到不少用户的喜爱!可是在使 ...
- php获取手机的mac地址,Android手机获取Mac地址的方法
[导读]这篇文章主要为大家详细介绍了Android手机获取Mac地址的方法,具有一定的参考价值 最常用的方法,通过WiFiManager获取:/** * 通过WiFiManager获取mac地址 * ...
- Android手机获取IP地址的两种方法
Android手机获取IP地址的两种方法 本文章讲解了WIFI和GPRS两种情况下获取手机IP地址的方法 1.使用WIFI 1,首先设置用户权限 AndroidManifest.xml添加: < ...
- Android 判断当前设备是手机还是平板的最有效的方法
温馨提示! 温馨提示! 温馨提示! 这篇文章所提供的解决方案有瑕疵,最新的解决方案详见此文章<Android 判断当前设备是手机还是平板的最有效的方法[2022版]> 1. 前言 如果你百 ...
- 安卓手机获取IP地址
安卓手机获取IP地址有两种方法: 一.请求获取IP地址的接口 许多获取IP地址的网站都有这个功能,例如我项目中用到过的接口 http://pv.sohu.com/cityjson?ie=utf-8, ...
- root android oppo,OPPO R9S怎么ROOT oppor9s获取root权限的两种方法
OPPO R9S如何ROOT呢?作为一款最新的OPPO系列智能手机,对于刚入手的用户而言,可能不知该如何获取OPPO R9S手机ROOT权限.下面就与大家分享一下获取OPPO R9S手机ROOT权限的 ...
- Android实现截屏和截长图功能的几种方法
一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来. 如果开发中想要调 ...
- linux下logcat命令,Android shell命令行中过滤adb logcat输出的几种方法
我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb lo ...
- php 获取一串随机字符串,php获取随机字符串的几种方法
方法一:shuffle函数(打乱数组)和mt_rand函数(生成随机数,比rand速度快四倍) /** * 获得随机字符串 * @param $len 需要的长度 * @param $special ...
最新文章
- Shell脚本逐行处理文本文件技巧
- CentOS7(64位)安装Jupyter Notebook
- python 内存不足 dict 替代方案_2D数组代表一个巨大的python dict,COOrdinate就像解决方案来节省内存...
- 给thinkphp3.2用上composer
- python k线图 动态刷新不了_ImageButton点击之后不动态刷新页面的解决方案
- QML的import目录爬坑记录
- android ListView实现下拉上拉刷新功能
- 苹果MacBook Air 2022款也将有刘海屏设计
- 提高sql性能的方法_三种提高T-SQL性能的方法
- debian安装什么mysql_安装多个mysql实例(debian版本)
- mysql之查询某段时间范围的数据
- Atitit 延迟绑定架构法attilax总结
- u盘写保护+计算机管理,U盘写保护的解决方法
- [NOIP2007]矩阵取数游戏(详细题解、含多种思路)
- 微信自动发卡机器人说明
- 从事java开发工作三年的感想
- BUUCTF之Ping Ping Ping
- 关于谷歌浏览器默认首页为好123的解决办法
- C语言string中常用方法
- 正版win7系统下载重装教程