300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android 获取wifi信号强度 获取wifi当前手机连接的wifi信息以及信号强度

android 获取wifi信号强度 获取wifi当前手机连接的wifi信息以及信号强度

时间:2021-11-18 12:00:32

相关推荐

android 获取wifi信号强度 获取wifi当前手机连接的wifi信息以及信号强度

1、获得WifiManager对象WifiManagerwm=(WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);

2、通过WifiManager对象获得wifi信息WifiInfoinfo=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"?>

xmlns:app="/apk/res-auto"

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="20dp"

tools:context=".MainActivity">

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" />

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" />

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" />

android:id="@+id/ivWifi"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/textView2"

android:background="@drawable/wifi1"/>

主函数代码import android.app.Activity;

import android.content.Context;

import .wifi.WifiInfo;

import .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();

}

}

最后给权限

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。