检测BSSID不断变化

时间:2013-12-30 13:55:44

标签: android

我正在开发一个Android应用程序,该应用程序应该持续检查手机所连接的接入点的BSSID,知道手机将始终连接到一个网络但可能连接到多个接入点(当然不是在同一时间),因为建筑很大。我使用了BroadcastReceiver但是为了检查手机是否连接到不同的接入点,我必须关闭应用程序并再次运行它以获得更新的BSSID。我希望应用程序使用新的BSSID不断检查和更新UI,而无需关闭应用程序并再次打开它。你知道我怎么能这样做吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我过去曾成功使用它来监控WiFi连接的变化:

public class NetworkChangeReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
        NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        // etc
    }
}
}

只需在onResume()中注册你的接收器并在onPause()中取消注册,你应该好好去。

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

    IntentFilter connectivityFilter = new IntentFilter();
    connectivityFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
    registerReceiver(your_broadcast_receiver, connectivityFilter);
}