如何获取android手机mac地址,Android手机如何获取Mac地址
最常用的方法,通过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地址相关推荐
- android+手机mac地址,Android 获取手机Mac地址,手机名称
/** * 获取手机mac地址 * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取mac地址: Stri ...
- Android 手机上获取手机当前上网IP地址(手机网关给手机号分配的IP)
Android 手机上获取手机当前上网IP地址 (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手机号分配一个IP地址(当然这个IP地址会在下线上线后会改变,网关都有记录的 ...
- android获取路由器ip地址吗,手机查看路由器设置网址(登录IP地址)的方法
"路由器设置网址是什么?之前修改过路由器的设置网址,现在忘记了是多少,那么此时应该怎么办?"或许大家在使用自家路由器时,遇到了不知道设置网址是多少的问题.下面就来为大家介绍通过手机 ...
- android动态mac地址,android 设备唯一码的获取,Cpu号,Mac地址
赞0 开发Android应用中,我们常常需要设备的唯一码来确定客户端. Android 中的几中方法,使用中常常不可靠 1. DEVICE_ID 假设我们确实需要用到真实设备的标识,可能就需要用到DE ...
- android 获取手机SD卡和手机的内部存储
在开发过程中有时候会获取手机的SD存储使用状况. 布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/re ...
- Android检查手机是否Root以及应用是否获取Root权限
在Android中如何判断手机是否Root以及应用是否获取了Root权限,下面我们将对开源项目RootTools的源码进行分析. RootTools的源码地址:https://github.com/S ...
- 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 ...
- Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法)!
大家好,我们这一节讲一下,Android获取Ip的一些方法,在我们开发中,有判断手机是否联网,或者想获得当前手机的Ip地址,当然WIFI连接的和 我们3G卡的Ip地址当然是不一样的. 首先我尝试了如下 ...
- android手机文件储存地址,Android手机缓存的位置
在Android手机里面,缓存的位置分为两类,一类是Internal Storage,即内部存储,另外一类是External Storage,即外部存储. 比较老的手机,有一个手机内部存储,还有一个S ...
- 如何使用Aimersoft iMusic for Mac从 Android 手机备份歌曲到 PC/Mac?
如果计算机上没有副本,最好将 Android 手机中的歌曲备份到计算机上,因为我们永远不知道歌曲何时会因恢复出厂设置或病毒攻击而丢失.Aimersoft iMusic for Mac可以通过 2 个简 ...
最新文章
- JS数组去重的6种算法实现
- 物联网、云计算、大数据、人工智能之间有怎样的联系和区别?
- STM32寄存器与输入捕获
- DCMTK:测试DcmItem的newDicomElement()辅助方法
- ROS学习(九)—— rqt_console 和 roslaunch
- python3兼容python2 print_python 字符串 r raw Python2 和 Python3 的区别及兼容技巧
- cctv系统车站服务器功能,CCTV系统
- Mvvm 前端数据流框架精讲
- javascript打印1-100内的质数
- 对HGE游戏引擎的一次封装
- 实践项目二:图书馆管理系统 总结
- python下载网页上的pdf文件_利用Python把网页内容转换为pdf格式文件,批量下载到本地!...
- 基于STM32的NRF24L01模块一对一的问题记录
- 浅析json_encode
- 离散数学知识点总结(3):等值演算,16个命题定律 / 基础等价式,重言式的替换规则,证明有效性和可满足性的方法
- 不是谁多情,亦不是谁薄情
- 获取当天日期的前一天或前几天,查询一天内的数据
- 机器学习(八):CS229ML课程笔记(4)——生成学习,高斯判别分析,朴素贝叶斯
- python制作英语字典_python制作英文学习字典案列
- C#控制台程序输出杨辉三角
热门文章
- 大三实习生面试BAT经验
- 掌握算法本质背后的计算思维,尽在吴军博士《计算之魂》这本书中
- 如何评价 IEEE Access 成为了 Top 期刊?
- 超大日志文件分割方法
- 特殊字符的处理 GS RS EOT
- 发现把图片拖放到百度翻译(fanyi.baidu.com)的文本框里,就能识别出图片里的文字
- 假装自己升级了Win11~
- 【影评】海贼王:855
- R语言笔记3_回归分析(EDA OLS Power)
- 医疗图像论文笔记二:《Learning to recognize Abnormalities in Chest X-Rays with Location-Aware Dense Networks》