日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

發布時間:2025/1/21 Android 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.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(WifiManager.NETWORK_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("android.net.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="android.NET.wifi.RSSI_CHANGED"/><action android:name="android.net.wifi.STATE_CHANGE"/><action android:name="android.Net.wifi.WIFI_STATE_CHANGED"/></intent-filter></receiver>

(以上代碼均來自網絡,由我整理發布)

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Android通过广播监测Wi-Fi和便携式热点开关状态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。