网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

    1、获得WifiManager对象

    WifiManager wm = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);


    2、通过WifiManager对象获得wifi信息

    WifiInfo info = wm.getConnectionInfo();


    3、通过WifiInfo获得wifi信息

    //通过wifi管理对象获得wifi信息
                            WifiInfo info = wm.getConnectionInfo();
                            //获取wifi名称
                            String ssid = info.getSSID().replace("\"", "");
                            //获取mac地址
                            String MacAddr = info.getMacAddress();
                            //获取当前连接速度
                            int linkSpeed = info.getLinkSpeed();
                            //获取ip地址
                            int ipAddr = info.getIpAddress();
                            ......


    xml代码

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 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"
        android:padding="20dp"
        tools:context=".MainActivity">
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="SSID:"
            android:textColor="@android:color/black"
            android:textSize="30sp" />
        <TextView
            android:id="@+id/wifiSSID"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/textView1"
            android:text="-"
            android:textColor="@android:color/black"
            android:textSize="30sp" />
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="信号强度"
            android:layout_below="@id/textView1"
            android:textColor="@android:color/black"
            android:textSize="30sp" />
        <ImageView
            android:id="@+id/ivWifi"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/textView2"
            android:background="@drawable/wifi1"/>
    </RelativeLayout>


    主函数代码

    import android.app.Activity;
    import android.content.Context;
    import android.net.wifi.WifiInfo;
    import android.net.wifi.WifiManager;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    public class MainActivity extends Activity {
        private WifiManager wm;
        private TextView wifiSSID;
        private ImageView ivWifi;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            initWifi();
        }
        private void initView() {
            wifiSSID = findViewById(R.id.wifiSSID);
            ivWifi = findViewById(R.id.ivWifi);
        }
        Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case 1:
                        wifiSSID.setText(msg.obj.toString());
                        if (msg.arg1 <= 50) {
                            ivWifi.setBackgroundResource(R.drawable.wifi4);
                        } else if (msg.arg1 <= 70) {
                            ivWifi.setBackgroundResource(R.drawable.wifi3);
                        } else if (msg.arg1 <= 100) {
                            ivWifi.setBackgroundResource(R.drawable.wifi2);
                        }
                        break;
                    case 2:
                        wifiSSID.setText("-");
                        ivWifi.setBackgroundResource(R.drawable.wifi1);
                        break;
                }
            }
        };
        private void initWifi() {
            Thread thread = new Thread() {
                @Override
                public void run() {
                    while (true) {
                        try {
                            sleep(1000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        //拿到wifi管理对象
                        wm = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                        if (wm.isWifiEnabled()) {
                            //通过wifi管理对象获得wifi信息
                            WifiInfo info = wm.getConnectionInfo();
                            //获取wifi名称
                            String ssid = info.getSSID().replace("\"", "");
                            //获取mac地址
                            String MacAddr = info.getMacAddress();
                            //获取当前连接速度
                            int linkSpeed = info.getLinkSpeed();
                            //获取ip地址
                            int ipAddr = info.getIpAddress();
                            Message msg = Message.obtain();
                            msg.what = 1;
                            msg.obj = ssid;
                            /**
                            *getRssi()返回的是一个-100到0的数,直接取绝对值
                            *-50到0表示信号好
                            *-50到-70表示信号一般
                            *-70到-100表示信号差
                            */
                            msg.arg1 = Math.abs(info.getRssi());
                            handler.sendMessage(msg);
                        } else {
                            Message msg = Message.obtain();
                            msg.what = 2;
                            handler.sendMessage(msg);
                        }
                    }
                }
            };
            thread.start();
        }
    }


    最后给权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>


    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部