Are you using the following permissions? <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_CHANGE_STATE"/>
How do u setup your broadcast receiver? Write a method: private void registerForWifiBroadcasts() { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction (WifiManager.NETWORK_STATE_CHANGED_ACTION); intentFilter.addAction (WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION); intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); intentFilter.addAction (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); mContext.registerReceiver(this, intentFilter); } or do this in the Manifest file. With doing this you should be able to get the state change intent. -- Roman Baumgaertner Sr. SW Engineer-OSDC ·T· · ·Mobile· stick together The views, opinions and statements in this email are those of the author solely in their individual capacity, and do not necessarily represent those of T-Mobile USA, Inc. On Aug 19, 12:51 pm, R Ravichandran <ravirajami...@gmail.com> wrote: > Hello, > > I have some code using the WifiManager class that needs to do the following: > > 1. scan available open wifi hotspots > 2. pick one > 3. establish connection. > > I am not able to successfully do steps 2 and 3. Here is the snippet: > > private BroadcastReceiver wifiEventReceiver = new BroadcastReceiver() { > > @Override > public void onReceive(Context context, Intent intent) { > > if(intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { > // Asynchronous response from scan request. Hotspot results > are returned. > > List<ScanResult> hotSpots = wifiManager.getScanResults(); > > for(ScanResult hotSpot: hotSpots) { > String hotSpotSsid = hotSpot.SSID; > String hotSpotBssid = hotSpot.BSSID; > StringBuffer sBuf = new StringBuffer("\""); > sBuf.append(hotSpotSsid+"\""); > hotSpotSsid = sBuf.toString(); > > if(hotSpotSsid.equals("\"myhotspot\"")) { > > WifiConfiguration wifiConfiguration = new > WifiConfiguration(); > wifiConfiguration.SSID = hotSpotSsid; > wifiConfiguration.BSSID = hotSpotBssid; > wifiConfiguration.hiddenSSID = false; > wifiConfiguration.priority = 100000; > > // add this to the configured networks > int inetId = > wifiManager.addNetwork(wifiConfiguration); > if(inetId < 0) { > System.out.println("Unable to add network > configuration for SSID: "+hotSpotSsid); > return; > } > // connect to this wifi network > > boolean successConnected = > wifiManager.enableNetwork(inetId, true); > if(successConnected) { > System.out.println("====> Connected > successfully to myhotspot.."); > } > else { > System.out.println("====> Connection attempt to > myhotspot failed...Returning"); > return; > } > } > > } > > } > else > if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { > WifiInfo wifiInfo = wifiManager.getConnectionInfo(); > System.out.println("Check for current connection: SSID: > "+wifiInfo.getSSID()); > int ipAddr = wifiInfo.getIpAddress(); > > System.out.println("IP Address for connection: "+ipAddr); > > } > } > > I am getting the message that 'enableNetwork' call is succeeding. But the > code for handling the NETWORK_STATE_CHANGED_ACTION event never gets executed > > What am I doing wrong? > > Thanks > > Ravi --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---