我不知道问题出在哪里,因为 Google 已经回答了:
如果应用针对的是较旧的 SDK(Build.VERSION_CODES.P 或更低版本),它们可以继续使用此 API。
因此,将您的 Target SDK 更改为 28,它在 Android Q 上运行良好。
或者,如果您需要通过 Tasker 或 Automate 等第二个应用更改 WiFi 状态:
- 安装 Android Studio
- 使用 Empty Activity 和 SDK 28 创建一个名为 WiFiOn 的新项目
- 添加注释行:
import androidx.appcompat.app.AppCompatActivity;
import android.net.wifi.WifiManager;
import android.content.Context;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Add WiFi On Part
WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(true); // true or false to activate/deactivate wifi
// Add Toast if you want to
Toast toast = Toast.makeText(getApplicationContext(), "WiFi on", Toast.LENGTH_SHORT);
toast.show();
// Add Close Activity immediatelly
finish();
}
}
- 将 minSdkVersion 和 targetSdkVersion 更改为 28
build.grade(:app)
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.stackoverflow.example"
minSdkVersion 28
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
- 为 AndroidMAnifest.xml 添加权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.p1apps.wifion">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<application
android:allowBackup="true"
...
-
使用 Android Studio 将其安装到您的手机上。
-
像 3. 一样创建一个新项目,并将其命名为 WiFiOff,然后在 MainActivity 中使用更改的行重复所有步骤:
...
wifi.setWifiEnabled(false); // true or false to activate/deactivate wifi
...
Toast toast = Toast.makeText(getApplicationContext(), "WiFi off",
...