我正在编写一个Android应用程序,如果手机连接或断开连接到WIFI网络,它应该做出反应 . 我为此注册了 BroadcastReceiver
,效果很好 . 现在使用此代码,如果手机连接到WIFI,我可以获取当前的WIFI ID:
WifiManager mainWifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo currentWifi = mainWifi.getConnectionInfo();
int id = currentWifi.getNetworkId();
但是如果WIFI断开连接并且我想获得最后连接的WIFI的WIFI ID怎么办?我的问题是所有这一切都在 BroadcastReceiver
. 如果新的广播进来,这总是新建的,所以我无法在那里真正保存一些数据 . 是否有方法或其他方法可以获取最后连接的WIFI ID?
1 回答
如果我错过了什么,请原谅我 . 您可以getSharedPreferences从广播接收器访问上下文 .
此BroadcastReceiver拦截android.net.ConnectivityManager.CONNECTIVITY_ACTION,表示连接更改 . 它检查类型是否为TYPE_WIFI . 如果是,则检查是否已连接Wi-Fi并相应地在主活动中设置wifiConnected标志 .
你可以在这里找到sample app .