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();

}

}

}

https://www.cnblogs.com/zhaoyanjun/category/684868.html

java wifi监听_Android 监听 WiFi 开关状态相关推荐

  1. java程序实现wifi连接打印_Android下通过wifi调用打印机打印,Java代码片段分享,

    Android下通过wifi调用打印机打印 chongq 分享于 2小时前 4972阅 0人收藏此代码, 好图网图标搜索引擎,提供超过60万的免费图标.PNG图标.ICO图标.ICNS图标.网页图标 ...

  2. Android 监听 WiFi 开关状态

    Android 监听 WiFi 开关状态 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854309 本文出自[赵彦军的博客] ...

  3. 安卓网络连接全解:包括网络连接状态的监听、网络数据使用状态的监听、获取当前网络连接情况、启动wifi、获取当前连接wifi的网络情况、扫描wifi热点

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓网络连接情况全解:包括网络连接状态的监听.网络数据使用状态的监听.获取当前网络连接情况.启动wifi.获取当前连接wifi的网络情况.扫描wifi ...

  4. 无线网卡设置为监听模式 airodump破解wifi

    linux下将无线网卡工作模式切换为监听模式 首先使用如下操作设置为监听模式: #ifconfig wlan0 down  //没有错误提示就是成功 #iwconfig wlan0 mode moni ...

  5. android wifi 广播吗,Android WIFI开发之广播监听

    在 WIFI 网络开发过程中,容易对网络变化的系统广播和不同广播对应的网络状态区分不清楚,所以对常用的系统网络广播Intent Action和网络状态含义做了整理,希望能够加强记忆并且帮助到大家理解何 ...

  6. kali监听不到附近WiFi

    针对kali在监听过程中扫描不到附近WiFi,如下图 步骤: 1.先断开网卡的连接,再重新连接 确保你的网卡是连接到虚拟机里 2.连接后会显示wlan0网卡,先将一些进程杀死,我之前就是因为没有杀死进 ...

  7. android 获取wifi的加密类型,Android WIFI开发:获取wifi列表,连接指定wifi,获取wifi加密方式,监听wifi网络变化等...

    下面是 Android 开发中 WiFi 的常用配置,如:获取当前 WiFi ,扫描 WiFi 获取列表,连接指定 WiFi ,监听网络变化等等. 下面是效果图: GitHub 下载地址:https: ...

  8. java实现分发_关于JAVA中事件分发和监听机制实现的代码实例

    [实例简介] 关于JAVA中事件分发和监听机制实现的代码实例,绝对实用代码,有说明. [实例截图] [核心代码] JavaEventDispatch ├── bin │   └── com │   └ ...

  9. Java按钮监听器ActionListener 事件监听教程.

    按钮点击产生的效果通过事件监听来实现,下面介绍如何创建一个按钮的监听器, 一.创建监听器 1. 创建一个普通的Frame和然后添加一个按钮,参考教程 2.自制一个MyActionListener 的监 ...

最新文章

  1. 五丶阿东安装部署教程+青龙对接阿东及傻妞实现自动登录
  2. Ardino基础教程 5_按键控制
  3. android -------- MVP+DataBinding 的使用
  4. 二手房买卖砍价最新攻略 帮你花少钱买好房
  5. DotNetNuke 框架总揽
  6. Object型转list,jsonObject型转list方法,亲测可用
  7. 实训汇编语言设计——16位数拆分为4组
  8. 最有价值的编程忠告[转CSDN]
  9. matlab-自控原理 已知x~=Ax+Bu中的AB矩阵和X0,求单位输入下的时间响应
  10. 渗透测试-信息收集篇
  11. 读书-思考力|《金字塔原理》
  12. MQL5 编程基础: 文件
  13. 身份证号码 如何把格式设置成18个格子
  14. Android Xposed模块动态隐藏桌面图标
  15. 在经历了6个月的学习后,我终于上架了自己的第一款APP---酷课堂iOS群问答精华整理(201807期)
  16. Android 长图大图加载
  17. 毕业论文字体字号格式要求
  18. Linux kernel log与调试
  19. c#操作word图表(二)
  20. [OpenGL]计算机图形学:明暗处理的基本算法

热门文章

  1. 2013年7月29日周一
  2. Windows server 2003域下全局组、本地域组及通用组之间的关系详解
  3. 马化腾内部讲座:让产品自己召唤人
  4. C# 关闭进程的时候总是捕捉到System.Threading.ThreadAbortException: 正在中止线程
  5. GUI for git|SourceTree|入门基础
  6. jquery数组(排序)
  7. 反思代码优化点:trycatch 验证类 封装用户变量
  8. Vue报错bash: vue: command not found或者vue ui没有反应:官方修改成新的命令了
  9. MySQL主从复制的原理:IO用于交互 SQL用于解析执行;主bin-log 从relay-log;
  10. mysql实现vpd_基于JDBC实现VPD:SQL解析篇