Android動態注冊廣播,監聽網絡狀態變化,判斷網絡模式

jopen 10年前發布 | 283K 次閱讀 Android網絡 Android開發 移動開發

注冊廣播監聽網絡連接和斷開狀態的變化,判斷網絡連接模式;

private ConnectivityManager mConnectivityManager;  

 private NetworkInfo netInfo;  

/////////////監聽網絡狀態變化的廣播接收器  

 private BroadcastReceiver myNetReceiver = new BroadcastReceiver() {  

 @Override  
 public void onReceive(Context context, Intent intent) {  

  String action = intent.getAction();  
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {  

            mConnectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);  
            netInfo = mConnectivityManager.getActiveNetworkInfo();    
            if(netInfo != null && netInfo.isAvailable()) {  

                 /////////////網絡連接  
                String name = netInfo.getTypeName();  

                if(netInfo.getType()==ConnectivityManager.TYPE_WIFI){  
                 /////WiFi網絡  

                }else if(netInfo.getType()==ConnectivityManager.TYPE_ETHERNET){  
                /////有線網絡  

                }else if(netInfo.getType()==ConnectivityManager.TYPE_MOBILE){  
               /////////3g網絡  

                }  
              } else {  
             ////////網絡斷開  

            }  
        }  

   }   
   };   

/////////動態注冊廣播  

       IntentFilter mFilter = new IntentFilter();  
       mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);  
       registerReceiver(myNetReceiver, mFilter);  

/////////解除廣播  

    if(myNetReceiver!=null){  
            unregisterReceiver(myNetReceiver);  
        }  

/////////發送廣播附加信息

          Intent intent=new Intent(); 
                intent.setAction(_ACTION); 
                intent.putExtra("msg", "hello"); 
                mContext.sendBroadcast(intent);

////////接收廣播時判斷附加信息

 public void onReceive(Context context, Intent intent) {
        String msg=intent.getStringExtra("msg");
        if(msg.equals("hello")){

                 ............

           }

}


-------------------------------------

////判斷GPS是否打開

   public boolean isGpsEnabled(Context context) {  

        LocationManager locationManager = ((LocationManager) context  

         .getSystemService(Context.LOCATION_SERVICE));   

       List<String> accessibleProviders = locationManager.getProviders(true);  

      return accessibleProviders != null && accessibleProviders.size() > 0;  

    }  

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!