Android动态注册广播,监听网络状态变化,判断网络模式

jopen 9年前

注册广播监听网络连接和断开状态的变化,判断网络连接模式;

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;  

    }