Android--获取已连接的Wifi、蓝牙的名字

本文介绍了在Android 7.1系统上如何获取已连接的Wifi和蓝牙设备的名称。通过监听`WifiManager.WIFI_STATE_CHANGED_ACTION`广播获取Wifi状态变化,并在`WifiManager.NETWORK_STATE_CHANGED_ACTION`广播中获取已连接的Wifi名称。对于蓝牙,初始化时通过隐藏API获取已连接设备名称,蓝牙状态变化时监听`BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED`广播获取连接的蓝牙设备。
摘要由CSDN通过智能技术生成

今天有个需求,需要在快捷面板上面的蓝牙和Wifi上面显示已连接的蓝牙和Wifi的名字。

从网上找了一些资料,发现并没有说明到底怎么处理,我这边研究了下,目前,Wifi是可以正常显示的,但是,蓝牙的,需要使用到隐藏API,当然,这个对于我处理的系统应用是没有问题的,但是三方应用呢?貌似是不可以的。

现在总结下,后续找到更好的方案了,再来处理。以下内容基于Android 7.1.

Wifi名字的显示

Wifi开关的时候,会发送如下广播

WifiManager.WIFI_STATE_CHANGED_ACTION

看下API里面的说明

import android.net.wifi.WifiManager;

       * Broadcast intent action indicating that Wi-Fi has been enabled, disabled,
       * enabling, disabling, or unknown. One extra provides this state   as an int.
       * Another extra provides the previous state, if available.
       *
       * @see #EXTRA_WIFI_STATE
       * @see #EXTRA_PREVIOUS_WIFI_STATE
       
      @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
      public static final String WIFI_STATE_CHANGED_ACTION =
        "android.net.wifi.WIFI_STATE_CHANGED";

从API上面的说明可以看出,此广播是在Wifi的状态enabled(已打开)、disabled(已关闭)、enabling(正在打开)、disabling(正在关闭)、unknow(未知)之间发送变化的时候发送,发送的时候会附带两个信息–EXTRA_WIFI_STATE和EXTRA_PREVIOUS_WIFI_STATE

  • EXTRA_WIFI_STATE–发生变化后的状态
         * The lookup key for an int that indicates whether Wi-Fi is enabled,
         * disabled, enabling, disabling, or unknown.  Retrieve it with
         * {
   @link android.content.Intent#getIntExtra(String,int)}.
         *
         * @see #WIFI_STATE_DISABLED
         * @see #WIFI_STATE_DISABLING
         * @see #WIFI_STATE_ENABLED
         * @see #WIFI_STATE_ENABLING
         * @see #WIFI_STATE_UNKNOWN
     
         public static final String EXTRA_WIFI_STATE = "wifi_state";
  • EXTRA_PREVIOUS_WIFI_STATE–变化之前的状态
        * The previous Wi-Fi state.
        *
        * @see #EXTRA_WIFI_STATE
  
        public static final String EXTRA_PREVIOUS_WIFI_STATE = "previous_wifi_state";

所以,我们监听了这个广播消息,就可以获取当前Wifi的一些状态信息。

具体使用如下:

  1. 注册广播
        IntentFilter filter = new IntentFilter();
        filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
        mContext.registerReceiver(mReceiver, filter
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值