失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android通过广播监测Wi-Fi和便携式热点开关状态

Android通过广播监测Wi-Fi和便携式热点开关状态

时间:2020-03-29 15:17:04

相关推荐

Android通过广播监测Wi-Fi和便携式热点开关状态

前言

Android端通过广播的形式动态监测Wi-Fi状态以及便携式热点开关状态,其中获取Wi-Fi状态很简单,网上很多示例,但是通过广播获取热点开关状态相关的资料少之又少,不过好在一个国外网站找到了解决办法,在此分享给大家。

正文

直接看代码

package com.tl.test;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import workInfo;import .wifi.WifiInfo;import .wifi.WifiManager;/*** 该类是用于实时监测WiFi状态以及热点开关变化*/public class WifiReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if(action.equals(WifiManager.RSSI_CHANGED_ACTION)){//signal strength changed}else if(action.equals(WORK_STATE_CHANGED_ACTION)){//wifi连接上与否System.out.println("网络状态改变");NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);if(info.getState().equals(NetworkInfo.State.DISCONNECTED)){System.out.println("wifi网络连接断开");}else if(info.getState().equals(NetworkInfo.State.CONNECTED)){WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);WifiInfo wifiInfo = wifiManager.getConnectionInfo();//获取当前wifi名称System.out.println("连接到网络 " + wifiInfo.getSSID());}}else if(".wifi.WIFI_AP_STATE_CHANGED".equals(action)){//便携式热点的状态为:10---正在关闭;11---已关闭;12---正在开启;13---已开启int state = intent.getIntExtra("wifi_state", 0);System.out.println("热点开关状态:state= "+String.valueOf(state));if(state == 13){System.out.println("热点已开启");}else if(state == 11){System.out.println("热点已关闭");}else if(state == 10){System.out.println("热点正在关闭");}else if(state == 12){System.out.println("热点正在开启");}}else if(action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)){//wifi打开与否int wifistate = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_DISABLED);if(wifistate == WifiManager.WIFI_STATE_DISABLED){System.out.println("系统关闭wifi");}else if(wifistate == WifiManager.WIFI_STATE_ENABLED){System.out.println("系统开启wifi");}}}}

最后,注册广播,这里我选用静态注册的方式,在AndroidManifest.xml中添加

<!--静态注册广播 --><receiver android:name=".WifiReceiver" android:enabled="true" android:exported="true"><intent-filter><action android:name=".wifi.RSSI_CHANGED"/><action android:name=".wifi.STATE_CHANGE"/><action android:name=".wifi.WIFI_STATE_CHANGED"/></intent-filter></receiver>

(以上代码均来自网络,由我整理发布)

如果觉得《Android通过广播监测Wi-Fi和便携式热点开关状态》对你有帮助,请点赞、收藏,并留下你的观点哦!

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