1、增加权限:
由于此应用需要获取手机的网络信息,wifi信息,因此需要在AndroidManifest.xml文件中添加相关权限,否则会报permission deny错误:
1 <uses-permission android:name="android.permission.INTERNET"/> 2 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> 3 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> 4 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
2、获取WifiManager对象:
1 WifiManager wm = (WifiManager)getSystemService(WIFI_SERVICE); //获取wifi服务
注意:android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,getSystemService是Android很重要的一个API,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象,getSystemService是抽象类的Context一个方法。
3、启动扫描:
1 wm.startScan(); //启动扫描。
注意:这个方法是立即返回的,应该是新启动一个线程进行AP的扫描,所以最好等一段时间(很短时间就可以了)再获取结果。
4、获取扫描结果:
1 List<ScanResult> scanList = wManager.getScanResults(); 2 for(ScanResult scanResult : scanList){ 3 //对扫描结果的操作 4 String mac = scanResult.BSSID; //获取AP的mac地址 5 String ssid = scanResult.SSID; //获取服务集标识(路由器名字) 6 int rssi = scanResult.level; //wifi信号强度,单位是dbm 7 }