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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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;  

    }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值