Я хочу подключиться к сети Wi-Fi, используя SSID и пароль в android Q, ниже приведен мой код для подключения.
private void connect(String ssid,String password){
WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder();
builder.setSsid(ssid);
builder.setWpa2Passphrase(password);
WifiNetworkSpecifier wifiNetworkSpecifier = builder.build();
NetworkRequest.Builder networkRequestBuilder = new NetworkRequest.Builder();
networkRequestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
networkRequestBuilder.setNetworkSpecifier(wifiNetworkSpecifier);
NetworkRequest networkRequest = networkRequestBuilder.build();
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
networkCallback = new ConnectivityManager.NetworkCallback(){
@Override
public void onAvailable(@NonNull Network network) {
super.onAvailable(network);
Log.d(TAG, "onAvailable: "+network);
cm.bindProcessToNetwork(network);
}
};
cm.requestNetwork(networkRequest, networkCallback);
}
и добавить следующее разрешение в манифесте.
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
, но до сих пор я получил ошибку ниже.
Caused by: java.lang.SecurityException: com.a.wifidemoproject was not granted either of these permissions: android.permission.CHANGE_NETWORK_STATE, android.permission.WRITE_SETTINGS.
at android.os.Parcel.createException(Parcel.java:2074)
at android.os.Parcel.readException(Parcel.java:2042)
at android.os.Parcel.readException(Parcel.java:1990)
at android.net.IConnectivityManager$Stub$Proxy.requestNetwork(IConnectivityManager.java:3494)
at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:3562)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3594)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3670)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3631)
Как дать android.permission.CHANGE_NETWORK_STATE, android.permission.WRITE_SETTINGS
. Как решить эту проблему и успешно подключиться к сети Wi-Fi в Android Q.