扫描WiFi 并展示到ListView

来源:互联网 发布:淘宝都市丽人 编辑:程序博客网 时间:2024/06/06 10:06

添加权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.bwei.mydemo11_wifi.MainActivity"    android:orientation="vertical">    <RelativeLayout        android:id="@+id/relativelayout1"        android:gravity="start|center_vertical"        android:layout_width="368dp"        android:layout_height="wrap_content">        <LinearLayout            android:id="@+id/Curr_connected_wifi"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_alignParentTop="true"            android:orientation="vertical">            <TextView                android:id="@+id/testView1"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:text="haha"/>            <EditText                android:id="@+id/et1"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:cursorVisible="false"                android:focusable="false"                android:focusableInTouchMode="false" />        </LinearLayout>        <ScrollView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_below="@+id/Curr_connected_wifi"            android:scrollbars="vertical"            android:fadingEdge="vertical">            <LinearLayout                android:id="@+id/list_wifi"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:orientation="vertical">                <TextView                    android:id="@+id/testView2"                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:text="heihei" />                <EditText                    android:id="@+id/et2"                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:cursorVisible="false"                    android:focusable="false"                    android:focusableInTouchMode="false" />            </LinearLayout>        </ScrollView>    </RelativeLayout></LinearLayout>

MainActivity

public class MainActivity extends AppCompatActivity {    private EditText et1;    private EditText et2;    private WifiManager wifiManager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        et1 = findViewById(R.id.et1);        et2 = findViewById(R.id.et2);            initData();    }    private void initData() {        new Thread(                new Runnable() {                    @Override                    public void run() {                        while(true){                            runOnUiThread(new Runnable() {                                @Override                                public void run() {                                    obtainListInfo();                                }                            });                            SystemClock.sleep(3000);                        }                    }                }        ).start();    }    private void obtainListInfo() {        //得到wifi管理器        wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);        //得到当前连接的wifi        WifiInfo info = wifiManager.getConnectionInfo();        int rssi = info.getRssi();        String ssid = info.getSSID();        String bssid = info.getBSSID();        int linkSpeed = info.getLinkSpeed();        String units = WifiInfo.LINK_SPEED_UNITS;        if(wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED){            StringBuilder stringBuilder = new StringBuilder();            //返回搜索到的wifi列表            List<ScanResult> results = wifiManager.getScanResults();                //遍历展示            for (ScanResult scanResult :results ) {                stringBuilder.append("wifi网路ID");                stringBuilder.append(scanResult.SSID);                stringBuilder.append("\nwifi MAC地址:");                stringBuilder.append(scanResult.BSSID);                stringBuilder.append("\nwifi信号强度:");                stringBuilder.append(scanResult.level+"\n\n");            }            et2.setText(stringBuilder.toString());            String curr_connected_wifi=null;            curr_connected_wifi="Currently connecting WiFi \'"+ssid+"\' \nRssi: "+rssi+                    "\nMac addr: "+bssid+"\nspeed: "+linkSpeed+" "+ units;            et1.setText(curr_connected_wifi.toString());        }    }}

原创粉丝点击