Giới thiệu
Sử dụng WifiManager.setWifiEnabled(boolean) để bật/tắt Wi-Fi. Cần quyền CHANGE_WIFI_STATE.
Code (MainActivity.java)
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
textView.setText("Nhấn để BẬT Wi-Fi");
textView.setOnClickListener(v -> {
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
if (wifiManager != null) {
boolean success = wifiManager.setWifiEnabled(true);
textView.setText(success ? "Đang bật Wi-Fi..." : "Không thể bật Wi-Fi");
}
});
}
}
Quyền (AndroidManifest.xml)
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
⚠️ Hạn chế quan trọng từ Android 10 (API 29)
- App không phải system không thể bật/tắt Wi-Fi trực tiếp qua
setWifiEnabled(). Phương thức luôn trả về false. - Giải pháp: Dùng
WifiManager.startScan()để quét, hoặc hướng dẫn user vào Settings:
Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
startActivity(intent);
Lưu ý
- Trên Android 9 trở xuống, cần quyền
CHANGE_WIFI_STATE(normal permission). - Không nên bật/tắt Wi-Fi ngầm mà không có sự đồng ý của user.