Android 监听 WiFi 开关状态
Android 监听 WiFi 开关状态
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854309
本文出自【赵彦军的博客】
- 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();
}
}
}
Android 监听 WiFi 开关状态的更多相关文章
- Android 监听wifi广播的两种方式
1.XML中声明 <receiver android:name=".NetworkConnectChangedReceiver" > <i ...
- Android监听WIFI网络的变化并且获得当前信号强度
MainActivity如下: package cc.testwifi; import android.os.Bundle; import android.app.Activity; /** * De ...
- Android 监听电量的状态
监控手机电量的变化和充电状态 在BatteryManager中有一个粘性广播,不需要BroadcastReceiver作为接收器,在注册时将传入null IntentFilter filter = n ...
- [Android Pro] 监听WIFI 打开广播
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-perm ...
- 广播小案例-监听系统网络状态 --Android开发
本例通过广播实现简单的监听系统网络状态改变的小案例. 1.案例效果演示 当手机连网后,系统提示“已连接网络”, 当手机断网后,系统提示“当前网络不可用”. 2.案例实现 在主活动中动态注册广播,然后写 ...
- Android监听手机网络变化
Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...
- android86 监听SD卡状态,勒索软件,监听应用的安装、卸载、更新,无序广播有序广播
* 添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/> * 4.0以后广播接收者 ...
- 【Android】Android 监听apk安装替换卸载广播
[Android]Android 监听apk安装替换卸载广播 首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDE ...
- Windows Phone 8 获取与监听网络连接状态(转)
原文地址:http://www.cnblogs.com/sonic1abc/archive/2013/04/02/2995196.html 现在的只能手机对网络的依赖程度都很高,尤其是新闻.微博.音乐 ...
随机推荐
- Numpy 常用矩阵计算函数
基本属性 在做一些数据分析的时候,我们通常会把数据存为矩阵的形式,然后python本身对于矩阵的操作是不够的,因此出现了numpy这样一个科学开发库来进行python在次上面的不足. Numpy's ...
- Error:fatal: Not a git repository (or any of the parent directories): .git
在项目目录下执行git init命令. 大功告成.
- 翻译api调用
<?php function language($value,$from="auto",$to="auto") { $value_code=urlenco ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(三):搭建开发环境
生成项目模板 登录Spring Initializr生成Spring Boot项目模板,保存到本地. 地址:https://start.spring.io/ 导入Maven项目 使用IDE导入生成的M ...
- Async异步编程入门示例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 第七章 过滤器 Filter(二)
一 过滤器API 由容器实现的接口 –javax.servlet.Filter –javax.servlet.FilterChain –javax.servlet.FilterConfig 四个包装 ...
- elasticsearch安装ansj分词器
1.概述 elasticsearch用于搜索引擎,需要设置一些分词器来优化索引.常用的有ik_max_word: 会将文本做最细粒度的拆分.ik_smart: 会做最粗粒度的拆分.ansj等. ...
- PHP算法------排序
<?php/** * Created by PhpStorm. * User: 63448 * Date: 2018/5/5 * Time: 22:42 */$arr = [3,1,13,5,7 ...
- 超简单MVC应用程序播放WMV视频
本篇博文,介绍给大家的是,在MVC应用程序中,播放Windows media video(.wmv) 视频文件. Insus.NET的实现方法,把media player组件,嵌入MVC的控制器的Co ...
- C#图片文字识别
图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇总一下(C#实现),方便需要的朋友查阅,也给自己做个记号. 图片识别的用途:很多人用它去破解网站的验证码,用于达到自动刷票或者是批量 ...