Android实时获取热点已连接数(谷歌现成API可用,适用于第三方APP和系统APP)

编程入门 行业动态 更新时间:2024-10-24 10:24:28

Android实时获取<a href=https://www.elefans.com/category/jswz/34/1768365.html style=热点已连接数(谷歌现成API可用,适用于第三方APP和系统APP)"/>

Android实时获取热点已连接数(谷歌现成API可用,适用于第三方APP和系统APP)

获取手机热点当前已连接数,目前网上大多数思路是通过读取/proc/net/arp文件可以得到连接当前热点的设备的IP,通过遍历来获取已连接数。但其实这种做法是有很大缺陷的,因为一旦设备断开后,该设备的IP还是存在该文件中,之后再通过这种方法获取的已连接设备数就是错误的。

其实 Android 源码中是有现成的 API 来获取已连接设备数的。

HotspotControllerImpl 中的 getNumConnectedDevices 函数。
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java

public int getNumConnectedDevices() {return mNumConnectedDevices;
}

getNumConnectedDevices 获取的 mNumConnectedDevices 值是从哪里来的呢?
从代码里可以看出,是 HotspotControllerImpl 实现是 WifiManager 里的 SoftApCallback 接口。
/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java

public void onNumClientsChanged(int numConnectedDevices) {mNumConnectedDevices = numConnectedDevices;fireHotspotChangedCallback(isHotspotEnabled(), numConnectedDevices);
}

WifiManager 的 SoftApCallback 接口
/frameworks/base/wifi/java/android/net/wifi/WifiManager.java

public interface SoftApCallback {/*** Called when soft AP state changes.** @param state new new AP state. One of {@link #WIFI_AP_STATE_DISABLED},*        {@link #WIFI_AP_STATE_DISABLING}, {@link #WIFI_AP_STATE_ENABLED},*        {@link #WIFI_AP_STATE_ENABLING}, {@link #WIFI_AP_STATE_FAILED}* @param failureReason reason when in failed state. One of*        {@link #SAP_START_FAILURE_GENERAL}, {@link #SAP_START_FAILURE_NO_CHANNEL}*/public abstract void onStateChanged(@WifiApState int state,@SapStartFailure int failureReason);/*** Called when number of connected clients to soft AP changes.** @param numClients number of connected clients*/public abstract void onNumClientsChanged(int numClients);
}

综上所述,如果是系统APP,可以直接调用 HotspotControllerImpl 中的 getNumConnectedDevices 函数来获取手机热点已连接设备数。如果是第三方 APP ,则可以实现 WifiManager 里的 SoftApCallback 接口,通过 onNumClientsChanged 函数里的 numConnectedDevices 参数来获取已连接设备数。

关注公众号,获取更多开发必备知识

更多推荐

Android实时获取热点已连接数(谷歌现成API可用,适用于第三方APP和系统APP)

本文发布于:2024-03-08 14:46:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721172.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:热点   适用于   第三方   实时   连接数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!