这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
这篇文章主要介绍了 Android 监听 WiFi 的开关状态实现代码的相关资料, 需要的朋友可以参考下
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();
- }
- }
- }
来源: http://www.phperz.com/article/17/0601/335207.html