監聽WIFI連接狀態

1.註冊

        final IntentFilter WifiFilter = new IntentFilter();
        WifiFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        WifiFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
        WifiFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
        context.registerReceiver(wifiStateReceiver, WifiFilter);

2.接受廣播

private final BroadcastReceiver wifiStateReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {
                int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);
                switch (wifiState) {
                    case WifiManager.WIFI_STATE_DISABLED:
                    android.util.Log.i(mTag, "WIFI_STATE_DISABLED");
                    if((mNotifyManager != null) && (mNotifyManager.getNotificationChannel("my_channel_id") == null)){
                        mNotifyManager.cancel(WFC_NOTIFICATION);
                    }
                        break;
                }
            }
        }
    };

3.取消註冊

private void stopReceiver() {
        if (wifiStateReceiver != null) {
            mContext.unregisterReceiver(wifiStateReceiver);
        }
    }

還需要再AndroidManifest.xml裏添加一些網絡權限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章