php获取手机的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及其以下版本都可以获取到。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
时间: 2019-02-20
php获取手机的mac地址,Android手机获取Mac地址的几种方法相关推荐
- mac连接手机 vm_mac 无法连接android手机进行调试 解决方案
第一步:查看usb设备信息 在 终端输入:system_profiler SPUSBDataType 可以查看连接的usb设备的信息 比如我的usb信息如下(部分内容): Android: P ...
- 如何使用Aimersoft iMusic for Mac从 Android 手机备份歌曲到 PC/Mac?
如果计算机上没有副本,最好将 Android 手机中的歌曲备份到计算机上,因为我们永远不知道歌曲何时会因恢复出厂设置或病毒攻击而丢失.Aimersoft iMusic for Mac可以通过 2 个简 ...
- Mac 和 Android 手机之间互传文件,这四种方法简单高效!
在Windows上,我们常常需要用USB数据线将安卓手机连接到电脑上,然后在手机和电脑之间传输各种文件.但是这种方法对Mac电脑就不怎么起作用了.由于OS X系统的特殊性,许多用户都不知道如何顺利地将 ...
- android手机用户,2011年Android手机用户使用行为研究报告
一.市场概述及研究背景 谷歌Android,自获得摩托罗拉.三星.HTC.中兴.华为等诸多品牌的拥趸开始,就扮演起了智能手机市场竞争格局颠覆者的角色.经过近三年时间的发展,Gartner最新数据显示, ...
- Unity Android 之 应用打开手机的指定网页浏览器(external browser)的两种方法(封装aar和不用封装aar方法)
Unity Android 之 应用打开手机的指定网页浏览器(external browser)的两种方法(封装aar和不用封装aar方法) 目录 Unity Android 之 应用打开手机的指定网 ...
- 摩托罗拉手机前途系于Android手机
商刊:摩托罗拉手机前途系于Android手机 本文发表于 2009-05-06 15:56 | <script src="http://tougao.csdn.net/count.ph ...
- 短信备份到另一个手机android,旧手机的短信怎么转移到新手机上?三种方法总有一种适合你...
手机短信一直以来都是我们和其他对象传输信息的工具,更是存储了大量重要的信息,如果我们更换手机需要保留下来这些短信该怎么办呢?有没有什么方法可以将这些短信转移到新手机中去,或者导出到电脑上进行保管呢. ...
- html能连接手机与电视吗,手机如何投屏到液晶电视上?用这4种方法轻松连接,相互告知吧!...
现在我们使用的手机功能是越来越多,可以说手机的存在代替了很多以前的设备,就比如说电视,以前我们看电视都只能够在电视机上才能看,后来有了电脑之后又开始喜欢在电脑上看,现在有了手机呢,为了方便又喜欢在手机 ...
- brook客户端android,Android端线上NativeCrash收集的两种方法(一)
Android端crash可分为Java层crash和Native crash,我们通常说的crash一般指的是Java层crash,Native crash主要指C/C++代码(其在Android工 ...
- Android sim卡清空,Android手机卡了?用这几种方法变回来...
原标题:Android手机卡了?用这几种方法变回来... 2017年已经过去了三个多月,各大手机厂商也纷纷亮出了自家的新年新品,单看内存,几乎已经全面升级到4GB以上,6GB内存也成为中高端手机的标配 ...
最新文章
- Kohana中控制器继承自Controller_Template的问题
- 【linux】kill命令模板
- 沃尔玛招聘.NET软件工程师
- com.android.phone已停止运行怎么解决方法,com.android.phone已停止运行怎么解决
- Visio画图--我的形状
- 第八届蓝桥杯第十题 k倍区间
- Maven-Eclipse使用maven创建HelloWorld Java项目,使用Junit-4.11的注解
- 计算机ip保留地址,分类ip地址中,保留地址有哪些?具体点说说,作业。
- 正射影像、倾斜摄影测量相关软件汇总
- 图的m着色问题回溯法求解
- 超好用的网盘下载工具---PanDownload
- win10连接共享打印机出现0x0000011b
- 软件包没有可安装候选
- 【成功解决】运行qt生成的.exe文件报“无法找到入口”的问题
- 一文看懂GPIO口的八种工作原理
- k8s部署微服务项目
- 微信开发 没有认证过的服务号怎么办?微信提供了测试号(开通了认证过的服务号的功能)
- 物联网开源平台KAA
- Java 中对象数组的简单存入与取出
- 三、C++的常用STL