Android 監聽 WiFi 開關狀態
轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/70854309
本文出自【趙彥軍的博客】
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 {
@Overridepublic 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;}}}
}
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 );
}
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 ;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);wifiSwitch_presenter =
new WifiSwitch_Presenter(
this ,
this ) ;}
@Overridepublic 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;}}
@Overrideprotected void onDestroy() {
super.onDestroy();
if ( wifiSwitch_presenter !=
null ){wifiSwitch_presenter.onDestroy();}}
}
總結
以上是生活随笔為你收集整理的Android 监听 WiFi 开关状态的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。