Android 通過廣播獲取網絡狀態


   Android系統網絡連接狀態的改變會發一個廣播,注冊一個廣播接收者,實時動態的檢測網絡狀態,及時提醒用戶,優化用戶體驗。

    
    本文僅提供WIFI 狀態的檢測作為參考,其他網絡連接方式請對比WIFI連接作出調整。
 
    首先寫一個WifiStateBroadcast類繼承BroadcastReceiver,重寫onRecevie方法,獲取網絡連接狀態管理器,通過管理器拿到對應的網絡信息,得到網絡狀態,判斷網絡狀態,作出相應的業務邏輯.
 1 public class WifiStateBroadCast extends BroadcastReceiver {
 2     @Override
 3     public void onReceive(Context context, Intent intent) {
 4         //獲取manager
 5         ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 6         //獲取wifi狀態
 7         NetworkInfo.State state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
 8         if (state != NetworkInfo.State.CONNECTED){
 9             Toast.makeText(context,"WIFI已斷開連接",Toast.LENGTH_SHORT).show();
10         }else if (state == NetworkInfo.State.CONNECTED){
11             Toast.makeText(context,"WIFI已連接",Toast.LENGTH_SHORT).show();
12         }
13     }
14 }

然后在清單文件中靜態注冊廣播

1   <receiver android:name=".broadcast.WifiStateBroadCast">
2             <intent-filter>
3                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
4             </intent-filter>
5         </receiver>

不要忘了添加權限

1   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
2     <uses-permission android:name="android.permission.INTERNET" />
3     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>


這樣當手機網絡發生變化的時候,就能及時作出處理,防止某些過於依賴的程序無法正常的工作。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM