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 数组中。您可以根据需要使用 ssidmacAddress

Android 获取 Wifi 信息函数:getWifiInfo() 的正确使用

原文地址: https://www.cveoy.top/t/topic/mXnm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录