【问题标题】:How can I change wifi state by android studio如何通过android studio更改wifi状态
【发布时间】:2026-02-16 05:20:02
【问题描述】:

我正在尝试使用我的 android 应用程序更改 wi-fi 状态。我在清单文件中使用了 CHANGE_WIFI_STATE 和 ACCESS_WIFI_STATE 权限。

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

我已经使用以下代码更改了 wi-fi 状态。

public class MainActivity extends AppCompatActivity {
    Button btn_wifi_on, btn_wifi_off;
    WifiManager wifiManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_wifi_on = (Button) findViewById(R.id.btnTurnOn);
        btn_wifi_off = (Button) findViewById(R.id.btnTurnOff);

        btn_wifi_on.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                assert wifiManager != null;
                wifiManager.setWifiEnabled(true);
                Toast.makeText(MainActivity.this, "Wifi Turned on", Toast.LENGTH_SHORT).show();
            }
        });

        btn_wifi_off.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                wifiManager = (WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                assert wifiManager != null;
                wifiManager.setWifiEnabled(false);
                Toast.makeText(MainActivity.this, "Wifi Turned off", Toast.LENGTH_SHORT).show();
            }
        });
    }

}

当我点击按钮时,只显示 Toast 消息,但 wi-fi 状态没有改变。

谁能帮助我做错了什么?

【问题讨论】:

    标签: android android-studio android-wifi


    【解决方案1】:

    代码似乎没有任何问题,但这是一种优化方法,只需几行代码

    WifiManager wifiManager;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
      }
    
      public void startService(View v) {
        if (wifiManager.isWifiEnabled()) {
          wifiManager.setWifiEnabled(false);
          Toast.makeText(this, "WiFi Disabled", Toast.LENGTH_LONG).show();
        } else {
          wifiManager.setWifiEnabled(true);
          Toast.makeText(this, "WiFi Enabled", Toast.LENGTH_LONG).show();
        }
      }
    

    【讨论】: