Android 用于3G连接的等效wifiReceiver
我有一个名为WifiReceiver的类,它扩展了BroadcastReceiver:Android 用于3G连接的等效wifiReceiver,android,wifi,broadcastreceiver,3g,Android,Wifi,Broadcastreceiver,3g,我有一个名为WifiReceiver的类,它扩展了BroadcastReceiver: class WifiReceiver extends BroadcastReceiver { public void onReceive(Context c, Intent intent) { wifiList = mainWifi.getScanResults(); int size=wifiList.size(); for(int i
class WifiReceiver extends BroadcastReceiver
{
public void onReceive(Context c, Intent intent)
{
wifiList = mainWifi.getScanResults();
int size=wifiList.size();
for(int i = 0; i < size; i++)
{
Log.i("test","BSSID = "+wifiList.get(i).BSSID);
Log.i("test","SSID = "+wifiList.get(i).SSID);
}
}
}
////////////////////
基本上,我希望能够从任何可用网络获取BSSID和SSID。。。
它工作正常,但仅适用于WIFI连接。一旦我将手机从WIFI切换到3G,WifiReceiver类就不会被调用
有人知道我错过了什么吗
谢谢你到底有什么问题?例如,如果你想找到可用的3G网络,如果没有公共API,比如电话与Wi-Fi连接有很大不同,我也不会感到惊讶。如果你想知道为什么在切换到3G后你的WifiReceiver没有被调用,你确定你的手机没有关闭整个Wi-Fi模块吗?是的,我只想在切换到3G时调用我的WifiReceiver…在这种情况下,最好与WifiManager进行一些检查。isWifiEnabled()。还可能在WIFI_STATE_CHANGED_ACTION中添加一个钩子,以查看Wi-Fi是否已关闭-在此之后,扫描结果的WifiReceiver不太可能被调用。
mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
receiverWifi = new WifiReceiver();
registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();