Android 监听WiFi的开关状态实现代码

WifiSwitch_Presenter 源码:

package com.yiba.wifi.sdk.lib.presenter;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.wifi.WifiManager;/** * Created by ${zhaoyanjun} on 2017/3/29. * Wifi 开关监听 */public class WifiSwitch_Presenter {  private Context mContext ;  private Receiver receiver ;  private WifiSwitch_Interface mInterface ;  public WifiSwitch_Presenter( Context context , WifiSwitch_Interface mInterface ){    this.mContext = context ;    this.mInterface = mInterface ;    observeWifiSwitch();  }  private void observeWifiSwitch(){    IntentFilter filter = new IntentFilter();    filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);    receiver = new Receiver() ;    mContext.registerReceiver(receiver, filter);  }  /**   * 释放资源   */  public void onDestroy(){    if ( receiver != null ){      mContext.unregisterReceiver( receiver );    }    if (mContext!=null){      mContext = null;    }  }  class Receiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {      int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);      switch (wifiState) {        case WifiManager.WIFI_STATE_DISABLED:          if (mInterface != null){            mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_DISABLED);          }          break;        case WifiManager.WIFI_STATE_DISABLING:          if (mInterface != null){            mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_DISABLING);          }          break;        case WifiManager.WIFI_STATE_ENABLED:          if (mInterface != null){            mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_ENABLED);          }          break;        case WifiManager.WIFI_STATE_ENABLING:          if ( mInterface != null ) {            mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_ENABLING);          }          break;        case WifiManager.WIFI_STATE_UNKNOWN:          if ( mInterface != null ){            mInterface.wifiSwitchState( WifiSwitch_Interface.WIFI_STATE_UNKNOWN );          }          break;      }    }  }}

WifiSwitch_Interface 源码

package com.yiba.wifi.sdk.lib.presenter;/** * Created by ${zhaoyanjun} on 2017/3/29. * Wifi 开关监听 */public interface WifiSwitch_Interface {  int WIFI_STATE_ENABLING = 0 ;  int WIFI_STATE_ENABLED = 1 ;  int WIFI_STATE_DISABLING = 2 ;  int WIFI_STATE_DISABLED = 3 ;  int WIFI_STATE_UNKNOWN = 4 ;  void wifiSwitchState( int state );}

使用方式 MainActivity :

package com.yiba.core;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements WifiSwitch_Interface {  private WifiSwitch_Presenter wifiSwitch_presenter ;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    wifiSwitch_presenter = new WifiSwitch_Presenter( this , this ) ;  }  @Override  public void wifiSwitchState(int state) {    switch ( state ){      case WifiSwitch_Interface.WIFI_STATE_DISABLED :        Toast.makeText(this, "WiFi 已经关闭", Toast.LENGTH_SHORT).show();        break;      case WifiSwitch_Interface.WIFI_STATE_DISABLING:        Toast.makeText(this, "WiFi 正在关闭", Toast.LENGTH_SHORT).show();        break;      case WifiSwitch_Interface.WIFI_STATE_ENABLED :        Toast.makeText(this, "WiFi 已经打开", Toast.LENGTH_SHORT).show();        break;      case WifiSwitch_Interface.WIFI_STATE_ENABLING :        Toast.makeText(this, "WiFi 正在打开", Toast.LENGTH_SHORT).show();        break;    }  }  @Override  protected void onDestroy() {    super.onDestroy();    //释放资源    if ( wifiSwitch_presenter != null ){      wifiSwitch_presenter.onDestroy();    }  }}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. Android监听屏幕屏幕锁屏与解锁
  2. MediaScannerReceiver
  3. android实现双击事件的监听
  4. Android(安卓)控件随意拖动
  5. android cupcake源码编译问题
  6. Android监听HOME键的最简单的方法
  7. android > 广播监听电话状态
  8. android语音识别之科大讯飞语音API的使用
  9. Android(安卓)实现开机自启动 Service

随机推荐

  1. Android UI开发第三十五篇——AppCompat
  2. Android(安卓)>> 26. RecyclerView(一)
  3. 通过eclipse查看Android源代码(Java)
  4. 我所理解的Android模块化(二)——模块通信
  5. android中的push机制实现:android push no
  6. Android 单击listview弹出popupwindow弹
  7. Android Drawable之GradientDrawable
  8. Android studio实现左右滑动切换图片
  9. Android 的selector背景选择器应用
  10. Data Binding自定义属性