Android 获取 Wifi 信息函数:getWifiInfo() 的正确使用
Android 获取 Wifi 信息函数:getWifiInfo() 的正确使用
在 Android 开发中,获取当前连接的 Wifi 信息(SSID 和 MAC 地址)是常见需求。可以使用 getWifiInfo() 函数来实现。但是,您可能遇到过以下问题:
public String[] getWifiInfo() {
String[] wifiInfo = new String[2];
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
String ssid = info.getSSID();
String macAddress = info.getMacAddress();
wifiInfo[0] = ssid;
wifiInfo[1] = macAddress;
return wifiInfo;
}
这个函数无法使用,因为它缺少上下文参数,即缺少 Context 对象。
正确的使用方法应该是:
public String[] getWifiInfo(Context context) {
String[] wifiInfo = new String[2];
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
String ssid = info.getSSID();
String macAddress = info.getMacAddress();
wifiInfo[0] = ssid;
wifiInfo[1] = macAddress;
return wifiInfo;
}
需要传入一个 Context 对象作为参数,以便获取系统的 WifiManager 服务。
解释:
getSystemService(Context.WIFI_SERVICE) 方法用于获取系统服务,而 Context 对象代表应用程序的运行环境。因此,getWifiInfo() 函数需要传入 Context 对象,才能正确获取 WifiManager 服务,进而获取 Wifi 信息。
使用示例:
Context context = getApplicationContext(); // 获取应用程序上下文
String[] wifiInfo = getWifiInfo(context);
String ssid = wifiInfo[0];
String macAddress = wifiInfo[1];
通过传入 Context 对象,getWifiInfo() 函数可以正确获取 Wifi 信息,并将其存储在 wifiInfo 数组中。您可以根据需要使用 ssid 和 macAddress。
原文地址: https://www.cveoy.top/t/topic/mXnm 著作权归作者所有。请勿转载和采集!