Android获取wifi MAC,关闭的wifi不能获取

最近一直在尝试着在Android上通过ndk用C++获取本机MAC地址,但是用ioctl(SIOCGIFHWADDR)时,一直返回值小于0,即获取不到接口信息。刚开始我以为是自己漏掉了哪些访问权限,所以一直在增加uses-permission,后来发现不管怎么加都是这个情况,发现原来是用的android studio虚拟机没有打开wifi导致的。
因为WiFi的Mac address是一个被动资讯。一般在开机后,不会主动上报到系统裡。要待WiFi硬件启动后,才会把有关Mac address资料记载入系统去。所以要得到Mac address,一是等待WiFi启动,一是在程序中主动启动WiFi,得到Mac address后再把WiFi关掉。

(注:遍历了Android模拟器的接口之后,发现网卡名称只有eth0和lo(回环接口)两个,所以一般选择指定回去eth0)

时间: 2024-11-03 07:58:56

Android获取wifi MAC,关闭的wifi不能获取的相关文章

Android 获取WIFI MAC地址的方法

1. 经常用法,调用Android的API:WifiManager <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo

解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题【转】

本文转载自:http://www.jb51.net/article/128398.htm 这篇文章主要介绍了Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 前言: 之前项目比较旧,手机版本还比较低,还使用eclipse开发.用到了需要获取手机wifi Mac地址.使用了如下代码: // Android 6.0之前的版本可以用的方法(模拟器可以使用) private String getMacAddrO

Android wifi属性简介 及 wifi信息获取(wifi列表、配置信息、热点信息)

Android wifi对象属性及简易Demo 本章介绍Android开发中WiFi热点和WiFi属性的获取,介绍WiFi的名称.状态等属性以及获取周围WiFi热点的方法. 一.怎样获取wifi对象并进行操作 要操作 WIFI 设备,需要先获取 Context.getSystemService(Context.WIFI_SERVICE)获取WifiManager对象,并通过这个对象来管理WIFI设备. addNetwork(WifiConfiguration config) 添加一个config

dSploitzANTI渗透教程之修改MAC地址与Wifi监听器

dSploitzANTI渗透教程之修改MAC地址与Wifi监听器 dSploitzANTI基本配置 渗透测试是一种安全性较大的工作.所以,在实施渗透测试之前进行一些简单设置.如修改MAC地址.了解网络等.通过进行简单的配置,不仅可以保护自己的身份被暴漏,而且还可以提高渗透效率.因此,本章将介绍一些基本配置. 修改MAC地址 由于zANTI是一款渗透测试工具,所以在扫描时可能会被一些安全软件拦截,如360.因此,为了不暴漏自己的真实身份,用户可以在渗透之前修改自己的MAC地址.下面将介绍修改MAC

android代码设置、打开WLAN wifi热点及热点的连接

其实创建热点很简单,先获取到wifi的服务,再配置热点名称.密码等等,然后再通过反射打开它就OK了. 下面我们看看创建热点的代码实现: 这一段是开启WLAN热点,并可以指定好它的热点名和密码 支行后,这一段程序可以开启WLAN和同时自动关闭WIFI. package com.tel.lajoin.wifi.hotspot; import java.lang.reflect.Method; import android.app.Activity; import android.content.Co

如何使用Java代码获取Android移动终端Mac地址

快下班了,现在总结一下如何使用Java代码获取Android移动终端Mac地址: 通过设备开通WiFi连接获取Mac地址是最可取的,代码如下: /** * 设备开通WiFi连接,通过wifiManager获取Mac地址 * * @author 高焕杰 */ public static String getMacFromWifi(Context context){ ConnectivityManager connectivityManager = (ConnectivityManager) con

android学习笔记--检测是否为wifi环境

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); // 获取代表联网状态的NetWorkInfo对象 NetworkInfo wifiInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); return wifiInfo != null && wifiInfo.isConnected() 返回t

WiFi MAC层介绍

1. 访问机制 CSMA/CA:  Carrier Sense Multiple Access with Collision Avoidance WiFi采用带冲突避免的载波监听多路访问机制来控制对传输媒介的访问 不同于以太网,WiFi没有明确的冲突碰撞检测机制 WiFi MAC层指定了如下规则来检测冲突碰撞 - 使用介质前,speaker必须指示将使用多久,通知其他潜在speakers在使用介质所需要等待的时间 - 直到前一个speaker指示的时间后,其他speaker才能使用介质 - 当收

教大家CMD下一键获取所有连接过的WIFI密码

CMD不知道大家有没有经常用,但其实是很强大的,可以一键获取所有连接过的WIFI密码 Windows 8.Windows 8.1.Windows 10已测试成功!Windows 7没条件测试- 使用方法: 一.以管理员权限运行CMD (以及 开启无线网卡.最好是笔记本) 二.输入命令: for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do  @echo %j | findstr -i -v e

mac使用--mac未能加入wifi网络

前几天,我的mac在连接wifi时总会弹出"未能加入wifi网络........",而我的其他设备连接的湿滑顺畅.我在网上苦搜很久,试过很多方法都没有用. 我冥思苦想,至从我给mac插上我的usb扩展头之后它就再也没有连上过wifi,于是我报着试一试的态度拔下了我的usb扩展头. 奇迹发生了,这货居然就像从前那样,以极快地速度连上wifi,问题解决. 祝大家少走弯路