Android 监听WiFi的开关状态实现代码
Android监听WiFi的开关状态实现代码
WifiSwitch_Presenter源码:
packagecom.yiba.wifi.sdk.lib.presenter;
importandroid.content.BroadcastReceiver;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.content.IntentFilter;
importandroid.net.wifi.WifiManager;
/**
*Createdby${zhaoyanjun}on2017/3/29.
*Wifi开关监听
*/
publicclassWifiSwitch_Presenter{
privateContextmContext;
privateReceiverreceiver;
privateWifiSwitch_InterfacemInterface;
publicWifiSwitch_Presenter(Contextcontext,WifiSwitch_InterfacemInterface){
this.mContext=context;
this.mInterface=mInterface;
observeWifiSwitch();
}
privatevoidobserveWifiSwitch(){
IntentFilterfilter=newIntentFilter();
filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
receiver=newReceiver();
mContext.registerReceiver(receiver,filter);
}
/**
*释放资源
*/
publicvoidonDestroy(){
if(receiver!=null){
mContext.unregisterReceiver(receiver);
}
if(mContext!=null){
mContext=null;
}
}
classReceiverextendsBroadcastReceiver{
@Override
publicvoidonReceive(Contextcontext,Intentintent){
intwifiState=intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,0);
switch(wifiState){
caseWifiManager.WIFI_STATE_DISABLED:
if(mInterface!=null){
mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_DISABLED);
}
break;
caseWifiManager.WIFI_STATE_DISABLING:
if(mInterface!=null){
mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_DISABLING);
}
break;
caseWifiManager.WIFI_STATE_ENABLED:
if(mInterface!=null){
mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_ENABLED);
}
break;
caseWifiManager.WIFI_STATE_ENABLING:
if(mInterface!=null){
mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_ENABLING);
}
break;
caseWifiManager.WIFI_STATE_UNKNOWN:
if(mInterface!=null){
mInterface.wifiSwitchState(WifiSwitch_Interface.WIFI_STATE_UNKNOWN);
}
break;
}
}
}
}
WifiSwitch_Interface源码
packagecom.yiba.wifi.sdk.lib.presenter;
/**
*Createdby${zhaoyanjun}on2017/3/29.
*Wifi开关监听
*/
publicinterfaceWifiSwitch_Interface{
intWIFI_STATE_ENABLING=0;
intWIFI_STATE_ENABLED=1;
intWIFI_STATE_DISABLING=2;
intWIFI_STATE_DISABLED=3;
intWIFI_STATE_UNKNOWN=4;
voidwifiSwitchState(intstate);
}
使用方式MainActivity:
packagecom.yiba.core;
importandroid.os.Bundle;
importandroid.support.v7.app.AppCompatActivity;
importandroid.widget.Toast;
publicclassMainActivityextendsAppCompatActivityimplementsWifiSwitch_Interface{
privateWifiSwitch_PresenterwifiSwitch_presenter;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wifiSwitch_presenter=newWifiSwitch_Presenter(this,this);
}
@Override
publicvoidwifiSwitchState(intstate){
switch(state){
caseWifiSwitch_Interface.WIFI_STATE_DISABLED:
Toast.makeText(this,"WiFi已经关闭",Toast.LENGTH_SHORT).show();
break;
caseWifiSwitch_Interface.WIFI_STATE_DISABLING:
Toast.makeText(this,"WiFi正在关闭",Toast.LENGTH_SHORT).show();
break;
caseWifiSwitch_Interface.WIFI_STATE_ENABLED:
Toast.makeText(this,"WiFi已经打开",Toast.LENGTH_SHORT).show();
break;
caseWifiSwitch_Interface.WIFI_STATE_ENABLING:
Toast.makeText(this,"WiFi正在打开",Toast.LENGTH_SHORT).show();
break;
}
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
//释放资源
if(wifiSwitch_presenter!=null){
wifiSwitch_presenter.onDestroy();
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!