В моем приемнике вещания я использую приведенный ниже код, чтобы определить, подключен или отключен Wi-Fi.Это работает отлично, но wifiInfo.getSupplicantState (). Equals (SupplicantState.COMPLETED) возвращает true по крайней мере 4-7 раз при подключении Wi-Fi.
Могу ли я использовать SupplicantState.ASSOCIATING, поскольку он запускается только один раз?
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled()){
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if( wifiInfo.getSupplicantState().equals(SupplicantState.COMPLETED)){ //Connected ??
//Do Something
}
else if( wifiInfo.getSupplicantState().equals(SupplicantState.DISCONNECTED)){
//Do Something
}
}
else{
//Wifi Adaptor disabled;
}
Вот фильтр намерений, который я использую для BroadCast Receiver
<receiver
android:name="WifiReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE"/>
</intent-filter>
</receiver>