【发布时间】:2015-11-30 13:36:57
【问题描述】:
在我的应用程序中,我只想获得一次 wifi 状态更改广播。但是wifi换了多次收到广播,怎么办?
public class WifiChangedReceiver extends BroadcastReceiver {
public static String TAG = "WifiChangedReceiver";
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
boolean isConnected = wifi != null && wifi.isConnected();
if (isConnected) {
WifiManager wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
String wifi_ssid = wifiManager.getConnectionInfo().getSSID();
Log.d(TAG, "wifi connected==="+wifi_ssid);
} else {
Log.d(TAG, "wifi disconnected");
}
}
public class MainActivity extends Activity {
private WifiChangedReceiver mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(mReceiver==null){
mReceiver = new WifiChangedReceiver();
}
IntentFilter filter = new IntentFilter();
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(mReceiver, filter);
}
@Override
protected void onDestroy() {
if(mReceiver!=null){
unregisterReceiver(mReceiver);
}
super.onDestroy();
}
LogCat: wifi Camus to Tutu enter image description here
LogCat: wifi Tutu to Camus enter image description here
【问题讨论】:
-
第一次回调后尝试注销。
-
@Haresh Chhelana 我同时得到了状态,不是一个一个。我需要监控状态变化,直到应用退出
标签: android android-wifi