0

通知バーからWiFiアダプターをオンにした後、WiFiへの自動接続とダイアログボックスの表示を防止しようとしています。

WIFI_STATE_CHANGED_ACTION を受信する BroadcastReceiver をプログラムで登録します。WIFI_STATE_ENABLED で、構成済みネットワーク リストからネットワークを削除します。しかし、うまくいきません。

BroadcastReceiver を次の場所に登録します。

@Override
protected void onStart() {
    super.onStart();

    registerReceiver(wifiStatusReceiver, new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
}

そして onStop メソッドで登録を解除します。

BroadcastReceiver コード:

public class WiFiStatusReceiver extends BroadcastReceiver {

private WifiManager wifiManager;

@Override
public void onReceive(Context context, Intent intent) {

    wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);

    if(!isInitialStickyBroadcast()) { //it is not a sticky intent

        switch(wifiManager.getWifiState()) {

            case WifiManager.WIFI_STATE_ENABLING:
                    Toast.makeText(context, R.string.enabling_wifi, Toast.LENGTH_SHORT).show();
                break;

            case WifiManager.WIFI_STATE_ENABLED:
                    Toast.makeText(context, R.string.enabled_wifi, Toast.LENGTH_SHORT).show();

                    wifiManager.disconnect();

                    if(!wifiManager.getConfiguredNetworks().isEmpty()) { //there are some networks

                        for(WifiConfiguration wifiConfig :wifiManager.getConfiguredNetworks()) {
                            wifiManager.removeNetwork(wifiConfig.networkId); 
                        }
                    }

                break;

            case WifiManager.WIFI_STATE_DISABLING:
                    Toast.makeText(context, R.string.disabling_wifi, Toast.LENGTH_SHORT).show();


                break;

            case WifiManager.WIFI_STATE_DISABLED:
                    Toast.makeText(context, R.string.disabled_wifi, Toast.LENGTH_SHORT).show();


                break;
        }
    } else { //is a sticky intent

        wifiManager.disconnect();

        if(!wifiManager.getConfiguredNetworks().isEmpty()) { //there are some networks

            for(WifiConfiguration wifiConfig :wifiManager.getConfiguredNetworks()) {
                wifiManager.removeNetwork(wifiConfig.networkId); 
            }
        }
    }
}

}

助言がありますか ?

4

1 に答える 1

0

これを試してWifiを無効にしてください........そして必要に応じて有効にします........

boolean isOn = false;
WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(isOn);
于 2012-07-25T06:56:51.557 に答える