小编msn*_*rth的帖子

广播接收器未检测到丢失的WiFi连接

我在检测wifi的变化时遇到了一些麻烦.我希望我的应用程序能够监控wifi网络并在wifi断开连接时创建一个警报对话框.在启动,恢复等等或b.任何时候连接丢失.这是我的代码(我在onResume中使用this.registerReceiver(wifiStatusReceiver,新的IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION))注册它;并在onPause中取消注册它:

 BroadcastReceiver wifiStatusReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        int extraWifiState = intent.getIntExtra(
                WifiManager.EXTRA_WIFI_STATE,
                WifiManager.WIFI_STATE_UNKNOWN);

        final String action = intent.getAction();

        DialogFragment dialog = (DialogFragment) fragmentManager
                .findFragmentByTag(WifiAlertDialogFragment.DIALOG_WIFI);

        if (action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)) {
            NetworkInfo info = (NetworkInfo) intent
                    .getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
            if (info.getState().equals(NetworkInfo.State.CONNECTED)) {
                logger.d("wifi changed, is still connected");
                if (dialog != null)
                    dialog.dismiss();
            } else {
                logger.d("connection lost");
                if (dialog == null)
                    WifiAlertDialogFragment.wifiCheck(HomeActivity.this);
            }
        }

        switch (extraWifiState) {

        case WifiManager.WIFI_STATE_DISABLED:
            WifiAlertDialogFragment.wifiCheck(HomeActivity.this);
            break;
        case WifiManager.WIFI_STATE_DISABLING:
            Toast.makeText(HomeActivity.this, R.string.wifi_disabled,
                    Toast.LENGTH_SHORT).show();
            WifiAlertDialogFragment.wifiCheck(HomeActivity.this);
            break; …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver wifi

3
推荐指数
1
解决办法
5958
查看次数

标签 统计

android ×1

broadcastreceiver ×1

wifi ×1