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