java - BroadcastReceiver not registering with Intent - Wifi Scanning -
i have setup basic app scan , display details of wifi ap's in range. used broadcast receiver refresh list whenever scan completed. however, receiver not getting registered both .startscan() starting scan inbuilt gui not trigerring onreceive() method of receiver.
this code:
public class mainactivity extends activity { wifimanager mainwifi; intentfilter filter; boolean intentisregistered = false; private broadcastreceiver wifieventreceiver = new broadcastreceiver() { @override public void onreceive(context context, intent intent) { log.e("debug", "update received!"); if(intent.getaction().equals(wifimanager.scan_results_available_action)) { log.e("debug","scan_results_available_action"); list<scanresult> li = mainwifi.getscanresults(); (int i=0; i<li.size(); i++) { log.e("debug","ssid: "+li.get(i).ssid+" bssid: "+li.get(i).bssid+" cap: "+li.get(i).capabilities+" level: "+li.get(i).level+ "chan: "+li.get(i).frequency); } } } }; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // button wificonnect = (button)findviewbyid(r.id.wificonnect); mainwifi = (wifimanager) getsystemservice(context.wifi_service); if(mainwifi.iswifienabled()==false){ log.e("debug","turning on wifi"); toast.maketext(getapplicationcontext(), "enabling wifi...", toast.length_long).show(); mainwifi.setwifienabled(true); } else { log.e("debug","wifi on"); } if (mainwifi.startscan() == false) { log.e("error","scanning not start"); } else { log.e("debug", "scanning has started"); // maintext.settext("starting scan..."); } filter = new intentfilter(); filter.addaction(wifimanager.scan_results_available_action); registerreceiver(wifieventreceiver, filter); intentisregistered = true; } public boolean oncreateoptionsmenu(menu menu) { menu.add(0, 0, 0, "refresh"); return super.oncreateoptionsmenu(menu); } public boolean onmenuitemselected(int featureid, menuitem item) { mainwifi.startscan(); return super.onmenuitemselected(featureid, item); } @override public void onpause() { super.onpause(); if (intentisregistered==true) { unregisterreceiver(wifieventreceiver); intentisregistered = false; } } @override public void onresume() { super.onresume(); if (intentisregistered==false) { registerreceiver(wifieventreceiver, filter); intentisregistered = true; } } }
manifestation file:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.wifitester" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="17" /> <uses-permission android:name="android.permission.change_wifi_state"/> <uses-permission android:name="android.permission.access_wifi_state"/> <uses-permission android:name="android.permission.wake_lock"/> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.android.wifitester.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest>
this log of app starting , running. did manual scan, still nothing showed on debugger.
09-04 16:49:21.866 1606-1901/system_process i/activitymanager: start u0 {act=android.intent.action.main cat=[android.intent.category.launcher] flg=0x10200000 cmp=com.android.wifitester/.mainactivity bnds=[240,408][240,408]} pid 25719 09-04 16:49:22.405 1606-1806/system_process i/activitymanager: start proc com.android.wifitester activity com.android.wifitester/.mainactivity: pid=4209 uid=10086 gids={50086, 1028} 09-04 16:49:22.702 4209-4209/com.android.wifitester e/debug: wifi on 09-04 16:49:22.702 4209-4209/com.android.wifitester e/debug: scanning has started 09-04 16:49:22.796 4209-4209/com.android.wifitester d/libegl: loaded /system/lib/egl/libegl_powervr_sgx530_125.so 09-04 16:49:22.843 4209-4209/com.android.wifitester d/libegl: loaded /system/lib/egl/libglesv1_cm_powervr_sgx530_125.so 09-04 16:49:22.866 4209-4209/com.android.wifitester d/libegl: loaded /system/lib/egl/libglesv2_powervr_sgx530_125.so 09-04 16:49:22.937 4209-4209/com.android.wifitester d/openglrenderer: enabling debug mode 0 09-04 16:49:23.038 1606-1622/system_process i/activitymanager: displayed com.android.wifitester/.mainactivity: +994ms (total +10s108ms)
Comments
Post a Comment