導航:首頁 > 手機網路 > 監聽手機網路狀態

監聽手機網路狀態

發布時間:2024-12-27 17:19:04

⑴ Android 超簡單實現網路狀態的監聽

我們做項目的時候,不可避免的要做網路狀態的監聽,一般我們都是抽取出一個工具類來實現,比如:

細致的你當然還會再寫一個判斷網路類型的方法,反手再來一個例:

然後就可以在相應的操作前進行判斷網路的判斷:

但是這樣做也有些問題:

接下來就是本文的重點,如何通過 NetStatusBus 這個庫來解決以上問題,讓你的網路狀態監聽變得前所未有的簡單粗暴。

到這里就已經結束了,你的所有網路操作已經都可以清晰優雅的在訂閱方法中進行處理了,當然你也可以繼續往下看。

訂閱方法必須填寫一個NetType參數,可以通過NetType的值來判斷當前網路類型。

@NetSubscribe中 netType為可選值,可以設置訂閱的類型,可選值類型如下:

NetType.AUTO

這是默認值,任何網路狀態發生變化,該類型訂閱者都會被回調。同時會傳入NetType參數告知你當前的網路類型,示例如下:

只要當前是由 WIFI 改變引發的網路狀態變化,該類型訂閱者都會被回調。同時會傳入NetType參數告知你當前的網路類型,示例如下:

只要當前是由移動網路改變引發的網路狀態變化,該類型訂閱者都會被回調。同時會傳入NetType參數告知你當前的網路類型,示例如下:

NetType.NONE

只有當網路丟失時,該類型訂閱者才會被回調。

有人會覺得,我用個庫爽就行了管它的原理干什麼

你放心,我只是小小的描述一下實現方式。

原理簡單來說,就是在全局初始化的時候就綁定對網路的變化監聽。然後將進行注冊的父類所有的訂閱方法保存至集合中,這里涉及到一些方法的校驗,最後在網路狀態發生改變時利用 Java 反射機制遍歷執行所有訂閱方法。熟悉 EventBus 的小夥伴已經看出來了這里借鑒了一小部分 EventBus 的思想。

回到第一步,那麼具體是如何綁定對網路狀態變化的監聽呢?

以前我們是通過注冊廣播來實現綁定網路變更的監聽,在Android 7.0 以後,Google 基於性能和安全原因對廣播進行了很多限制,比如監聽網路變更的廣播 android.net.conn.CONNECTIVITY_CHANGE 使用靜態注冊的方式則無法生效,而動態注冊的方式雖然可以生效但畢竟不是最優解。

同樣出於性能和安全,以及擁抱變化的角度,最終我們還是使用官方推薦的方式,利用 ConnectivityManager.NetworkCallback 來進行網路變化的監聽,這是在Android 5.0即android api 21推出的API,目前Android 5.0以上的市場佔有率在 85%以上,隨著國內各大廠商正在積極的推進適配普及Android Q,這個比例還會進一步增大,所以個人人認為無需過於擔心低版本適配。

使用的時候出現這個問題是由於少添加了許可權。

Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10513 nor current process has android.permission.ACCESS_NETWORK_STATE.

java.lang.RuntimeException: Unable to create application com.jiyun.wanandroid.WanApplication: java.lang.SecurityException: ConnectivityService: Neither user 10513 nor current process has android.permission.ACCESS_NETWORK_STATE.

加上這幾個許可權就好了:

附上原文地址: https://www.jianshu.com/p/2fea980b3e56

閱讀全文

與監聽手機網路狀態相關的資料

熱點內容
蘋果7網路鎖怎樣解除 瀏覽:334
開展計算機網路安全排查工作 瀏覽:600
國家網路競賽的證書有什麼用 瀏覽:264
wifi顯示網路狀況不佳暫時關閉 瀏覽:165
典型的網路安全威脅 瀏覽:651
手機和電腦沒有網路能不能傳軟體 瀏覽:90
列印機共享的無線網路連接 瀏覽:956
斑馬網路測速設置 瀏覽:155
可以讓網路不卡頓的軟體 瀏覽:627
收費網路安全事件應急處置機制 瀏覽:581
vivo手機電信卡沒網路 瀏覽:691
電腦千千靜聽和移動網路不兼容嗎 瀏覽:399
天津移動網路電話線路 瀏覽:902
最全網路營銷資料包 瀏覽:584
完善網路安全應急預警體系 瀏覽:83
thinkpad打開無線網路 瀏覽:155
移動網路到期怎麼退 瀏覽:424
全網通無線網路卡多少錢 瀏覽:332
國內數據網路信號 瀏覽:328
智能手錶通過藍牙共享手機網路 瀏覽:884

友情鏈接