如何通过 android studio

问题描述

我正在尝试使用我的 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 状态没有改变。

谁能帮助我做错了什么?

解决方法

代码似乎没有任何问题,但这是一个用几行代码优化的方法

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();
    }
  }