Wifi 打開 與 關閉

来源:互联网 发布:前置净水器 知乎 编辑:程序博客网 时间:2024/05/06 20:56

public class WifiAlarmReceiver extends BroadcastReceiver{
 
 public static Context senderContext;
 
 public WifiAlarmReceiver()  
    {  
        Log.i("AlarmReceiver.AlarmReceiver()", Calendar.getInstance().getTime().toLocaleString());  
        Log.i("AlarmReceiver.AlarmReceiver() -> pid", String.valueOf(android.os.Process.myPid()));  
        Log.i("AlarmReceiver.AlarmReceiver() -> tid", String.valueOf(android.os.Process.myTid()));  
    }

    public void onReceive(Context context, Intent intent) {
     SharedPreferences data=context.getSharedPreferences(FlightAndWifiActivity.FLIGHT_WIFI_NAME,0);
     boolean isWifiOn=data.getBoolean(FlightAndWifiActivity.IS_WIFI_ON,FlightAndWifiActivity.DEFAULT_IS_ON);
     if(isWifiOn){
      closeWifi(senderContext);
     }else{
      openWifi(senderContext);
      //showToast(senderContext,"onReceive(),  openWifi trunk");
      Log.i("TAG","onReceive(),  openWifi trunk");
     }
     
    }
   
    private void openWifi(Context context){
   
     boolean isOn=false;
     WifiManager mWifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
//     showToast(senderContext,"openWifi trunk. "+mWifiManager.getWifiState());
     try{
   if(!mWifiManager.isWifiEnabled() && mWifiManager.getWifiState()!= WifiManager.WIFI_STATE_ENABLING){
    if(mWifiManager.setWifiEnabled(true)){
     switch(mWifiManager.getWifiState()){
     case WifiManager.WIFI_STATE_ENABLING:
      showToast(context,context.getResources().getString(R.string.wifi_enabling));
      isOn=true;
      break;
     case WifiManager.WIFI_STATE_ENABLED:
      showToast(context,context.getResources().getString(R.string.wifi_open_success));
      isOn=true;
      break;
     default:
      showToast(context,context.getResources().getString(R.string.wifi_open_fail)+":"+context.getResources().getString(R.string.wifi_unknow));
      break;
     }
    }else{
     showToast(context,context.getResources().getString(R.string.wifi_open_fail));
    }
   }else{
//    showToast(senderContext,"openWifi(),fffff");
//    mChkWifi.setChecked(false);
    switch(mWifiManager.getWifiState()){
    case WifiManager.WIFI_STATE_ENABLING:
     showToast(context,context.getResources().getString(R.string.wifi_open_fail)+":"+context.getResources().getString(R.string.wifi_enabling));
     break;
    case WifiManager.WIFI_STATE_DISABLING:
     showToast(context,context.getResources().getString(R.string.wifi_open_fail)+":"+context.getResources().getString(R.string.wifi_disabling));
     break;
    case WifiManager.WIFI_STATE_ENABLED:
     showToast(context,context.getResources().getString(R.string.wifi_open_fail)+":"+context.getResources().getString(R.string.wifi_enabled));
     isOn=true;
     break;
    case WifiManager.WIFI_STATE_DISABLED:
     showToast(context,context.getResources().getString(R.string.wifi_open_fail)+":"+context.getResources().getString(R.string.wifi_disabled));
     break;
    case WifiManager.WIFI_STATE_UNKNOWN:
    default:
     showToast(context,context.getResources().getString(R.string.wifi_open_fail)+":"+context.getResources().getString(R.string.wifi_unknow));
     break;
    }
   }
   
  }catch(Exception ex){
   ex.printStackTrace();
  }
  
  if(isOn){
   Editor edit=context.getSharedPreferences(FlightAndWifiActivity.FLIGHT_WIFI_NAME,0).edit();
   edit.putBoolean(FlightAndWifiActivity.IS_WIFI_ON, true);
   edit.commit();
  }else{
   
  }
    }
   
    private void closeWifi(Context context){
     boolean isOff=false;
     WifiManager mWifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
     try{
   if(mWifiManager.isWifiEnabled()){  //如果wifi已經開啟,則可以關閉
    if(mWifiManager.setWifiEnabled(false)){
     showToast(context,context.getResources().getString(R.string.wifi_close_success));
     isOff=true;
    }else{
     showToast(context,context.getResources().getString(R.string.wifi_close_fail));
    }
   }else{
    switch(mWifiManager.getWifiState()){
    case WifiManager.WIFI_STATE_ENABLING:
     showToast(context,context.getResources().getString(R.string.wifi_close_fail)+":"+context.getResources().getString(R.string.wifi_disabling));
     break;
    case WifiManager.WIFI_STATE_DISABLING:
     showToast(context,context.getResources().getString(R.string.wifi_close_fail)+":"+context.getResources().getString(R.string.wifi_disabling));
     break;
    case WifiManager.WIFI_STATE_DISABLED:
     showToast(context,context.getResources().getString(R.string.wifi_close_fail)+":"+context.getResources().getString(R.string.wifi_disabled));
//     isOff=true;
     break;
    case WifiManager.WIFI_STATE_UNKNOWN:
    default:
     showToast(context,context.getResources().getString(R.string.wifi_close_fail)+":"+context.getResources().getString(R.string.wifi_unknow));
     break;
    }
   }
  }catch(Exception ex){
    ex.printStackTrace();
  }
     
     if(isOff){
   SharedPreferences data=context.getSharedPreferences(FlightAndWifiActivity.FLIGHT_WIFI_NAME,0);
   int timesLeft=data.getInt(FlightAndWifiActivity.WIFI_TIMES_LEFT, FlightAndWifiActivity.DEFAULT_EDITTEXT_VALUE);
   timesLeft--;
   Editor edit=data.edit();
      edit.putBoolean(FlightAndWifiActivity.IS_WIFI_ON, false);
      edit.putInt(FlightAndWifiActivity.WIFI_TIMES_LEFT,timesLeft);
      edit.commit();
      Intent intent=new Intent(FlightAndWifiActivity.ACTION_UPDATE_WIFI_TIMESLEFT);
   context.sendBroadcast(intent);
  }else{
   
  }
    }
   
    private void showToast(Context context,String msg){
     Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
    }
   
}

原创粉丝点击