Android 获取连接WiFi和蓝牙名称

Posted 小zhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 获取连接WiFi和蓝牙名称相关的知识,希望对你有一定的参考价值。

一、获取WiFi名称:

//获取连接的wifi名称
public String getConnectWifiSsid() {
	WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
	WifiInfo wifiInfo = wifiManager.getConnectionInfo();
	//获取wifi信号强度
	rssi = wifiInfo.getRssi();
	String wifiid = wifiInfo.getSSID().replace("\\"", "").replace("\\"", "");
	MyLog.getInstance().PrintLog(TAG, "ssid======" + wifiid);
	MyLog.getInstance().PrintLog(TAG, "rssi======" + rssi);
    return wifiid;
}

根据信号强度设置wifi格数图片

if (rssi >= -55) {
	//满格信号
    image_wifi.setImageDrawable(ContextCompat.getDrawable(activity, R.mipmap.wifi4));
} else if (rssi < -55 && rssi >= -70) {
	//三格信号
 	image_wifi.setImageDrawable(ContextCompat.getDrawable(activity, R.mipmap.wifi3));
} else if (rssi < -70 && rssi >= -85) {
	//二格信号
	image_wifi.setImageDrawable(ContextCompat.getDrawable(activity, R.mipmap.wifi2));
} else if (rssi < -85&& rssi >= -100) {
	//一格信号
 	image_wifi.setImageDrawable(ContextCompat.getDrawable(activity, R.mipmap.wifi1));
}

二、获取蓝牙名称:

添加蓝牙权限:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
//获取连接的蓝牙名称
 public String getConnectedBtDevice() {
     //获取蓝牙适配器
     BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
     //得到已匹配的蓝牙设备列表
     Set<BluetoothDevice> bondedDevices = bluetoothAdapter.getBondedDevices();
     if (bondedDevices != null && bondedDevices.size() > 0) {
         for (BluetoothDevice bondedDevice : bondedDevices) {
			  try {
                  //使用反射调用被隐藏的方法
                  Method isConnectedMethod = BluetoothDevice.class.getDeclaredMethod("isConnected", (Class[]) null);
                  isConnectedMethod.setAccessible(true);
                  boolean isConnected = (boolean) isConnectedMethod.invoke(bondedDevice, (Object[]) null);
                  MyLog.getInstance().PrintLog(TAG, "isConnected:" + isConnected);
			      if (isConnected) {
                        return bondedDevice.getName();
                    }
                } catch (NoSuchMethodException e) {
                    e.printStackTrace();

                } catch (IllegalAccessException e) {
                    e.printStackTrace();

                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
//判断蓝牙功能是否存在
if (mBluetoothAdapter == null) {
showToest("该设备不支持蓝牙");
return;
}
//获取名字 MAC地址
String name = mBluetoothAdapter.getName();
String address = mBluetoothAdapter.getAddress();
Log.i(TAG, "蓝牙名: "+name+"mac地址:"+address);
//获取蓝牙的状态
int state = mBluetoothAdapter.getState();
switch (state){
	case BluetoothAdapter.STATE_ON:
		showToest("蓝牙已经打开");
		Log.i(TAG, "蓝牙已经打开 ");
		break;
	case BluetoothAdapter.STATE_OFF:
		showToest("蓝牙已经关闭");
		Log.i(TAG, "蓝牙已经关闭 ");
		break;
	case BluetoothAdapter.STATE_TURNING_OFF:
		showToest("蓝牙正在关闭");
		Log.i(TAG, "蓝牙正在关闭 ");
		break;
	case BluetoothAdapter.STATE_TURNING_ON:
		showToest("蓝牙正在打开");
		Log.i(TAG, "蓝牙正在打开 ");
		break;
		default:
		break;
}

以上是关于Android 获取连接WiFi和蓝牙名称的主要内容,如果未能解决你的问题,请参考以下文章

Android 获取连接WiFi和蓝牙名称

android adb 支持蓝牙连接吗

Android获取当前连接的wifi名称

获取蓝牙设备连接通知

Android开发之蓝牙(Bluetooth)

在 Android 8.1 中获取 WiFi 名称?