Android中扫描wifi信号,收集其所有相关信息,当前连接上的wifi信息程序代码

来源:互联网 发布:八爪鱼爬虫软件 编辑:程序博客网 时间:2024/05/09 20:49

今天在做WIFI定位方面的东西,第一步工作就是要采集当前周围扫描到的wifi信号相关详细信息,包括名称,强度,频率等等。

XML文件就布局一个简单的TextView即可,同时Androidmenifest文件中添加权限:


public class MainActivity extends Activity {WifiManager wifi;List list;TextView show;String csum;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);show = (TextView) findViewById(R.id.textView1);wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);if(! wifi.isWifiEnabled()){if(wifi.getWifiState() != WifiManager.WIFI_STATE_ENABLING)wifi.setWifiEnabled(true);}/** * 获取当前连接上的wifi相关信息 */WifiInfo info = wifi.getConnectionInfo();int strength = info.getRssi();int speed = info.getLinkSpeed();String bssid = info.getBSSID();String ssid = info.getSSID();String units = WifiInfo.LINK_SPEED_UNITS;  String wifiinformation = "ScanResults is: \n";/** * 获取扫描到的所有wifi相关信息 */List<ScanResult> results = wifi.getScanResults();for(ScanResult result:results){wifiinformation += result.BSSID+","+result.SSID+","+result.level+"\n";}        String text = "We are connecting to " + ssid + " at " + String.valueOf(speed) + "   " + String.valueOf(units) + ". Strength : " + strength;          wifiinformation += "\n\n";          wifiinformation += text;show.setText(wifiinformation);}}

相关背景知识:

BSSID:我们一般认为是mac地址,由**:**:**:**:**:**组成;

SSID:我们一般认为是路由器所起的名称,即路由器发送的信号的名字;

level:当前wifi信号强度,一般为负值;

speed:传输速度。

这样上述程序运行结果就是如图:


0 0
原创粉丝点击