admin管理员组

文章数量:1516870

在Android中,当WiFi的SSID(Service Set Identifier)变化时,可以通过监听 WifiManager 的广播来得知。以下是实现的示例代码:

首先,需要在AndroidManifest.xml中添加必要的权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

然后,在Activity或Service中注册广播接收器:

public class WifiBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action) ||
            WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action) ||
            WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
            
            WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            WifiInfo wifiInfo = wifiManager.getConnectionInfo();
            String ssid = wifiInfo.getSSID();
            
            // 这里可以根据ssid进行相应的处理
            Log.d("WifiSSID", "Current SSID is " + ssid);
        }
    }
}

最后,在Activity或Service中动态注册这个广播接收器:

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
WifiBroadcastReceiver wifiReceiver = new WifiBroadcastReceiver();
registerReceiver(wifiReceiver, intentFilter);

确保在不需要监听SSID变化时注销广播接收器:

unregisterReceiver(wifiReceiver);

这样,每当SSID变化时, WifiBroadcastReceiver onReceive 方法就会被调用,你可以在这里获取并处理新的SSID。

转自:

本文标签: 播接收器变化时设备里的