diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d8a02fb8..66656ce2 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -24,6 +24,7 @@
+
@@ -39,8 +40,8 @@
-
-
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 83c4ebcc..4a1e8255 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -403,6 +403,7 @@
Permission required
KDE Connect needs the background location permission to know the WiFi network you are connected to even when the app is in the background. This is because the name of the WiFi networks around you could be used to find your location, even when this is not what KDE Connect does.
+ KDE Connect needs permission to know the WiFi network you are connected to.
Android 10 has removed clipboard access to all apps. This plugin will be disabled.
Continue playing here
Can\'t open URL to continue playing
diff --git a/src/org/kde/kdeconnect/Helpers/TrustedNetworkHelper.java b/src/org/kde/kdeconnect/Helpers/TrustedNetworkHelper.java
index f3195b17..68d3ca88 100644
--- a/src/org/kde/kdeconnect/Helpers/TrustedNetworkHelper.java
+++ b/src/org/kde/kdeconnect/Helpers/TrustedNetworkHelper.java
@@ -6,6 +6,7 @@ import android.content.pm.PackageManager;
import android.net.wifi.SupplicantState;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
+import android.os.Build;
import android.preference.PreferenceManager;
import android.text.TextUtils;
import android.util.Log;
@@ -13,6 +14,7 @@ import android.util.Log;
import androidx.core.content.ContextCompat;
import org.apache.commons.lang3.ArrayUtils;
+import org.kde.kdeconnect_tp.R;
import java.util.List;
@@ -23,6 +25,8 @@ public class TrustedNetworkHelper {
private static final String NETWORK_SSID_DELIMITER = "#_#";
private static final String NOT_AVAILABLE_SSID_RESULT = "";
+ public static final String ACCESS_WIFI_NETWORKS_PERMISSION = Build.VERSION.SDK_INT >= 33? Manifest.permission.NEARBY_WIFI_DEVICES : Manifest.permission.ACCESS_FINE_LOCATION;
+ public static final int ACCESS_WIFI_NETWORKS_PERMISSION_EXPLANATION = Build.VERSION.SDK_INT >= 33? R.string.wifi_permission_needed_desc : R.string.location_permission_needed_desc;
private final Context context;
@@ -62,7 +66,7 @@ public class TrustedNetworkHelper {
}
public boolean hasPermissions() {
- int result = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION);
+ int result = ContextCompat.checkSelfPermission(context, ACCESS_WIFI_NETWORKS_PERMISSION);
return (result == PackageManager.PERMISSION_GRANTED);
}
diff --git a/src/org/kde/kdeconnect/UserInterface/TrustedNetworksActivity.java b/src/org/kde/kdeconnect/UserInterface/TrustedNetworksActivity.java
index 13b35acf..3e4ff9e3 100644
--- a/src/org/kde/kdeconnect/UserInterface/TrustedNetworksActivity.java
+++ b/src/org/kde/kdeconnect/UserInterface/TrustedNetworksActivity.java
@@ -67,10 +67,10 @@ public class TrustedNetworksActivity extends AppCompatActivity {
allowAllCheckBox.setChecked(true); // Disable unchecking it
new PermissionsAlertDialogFragment.Builder()
.setTitle(R.string.location_permission_needed_title)
- .setMessage(R.string.location_permission_needed_desc)
+ .setMessage(TrustedNetworkHelper.ACCESS_WIFI_NETWORKS_PERMISSION_EXPLANATION)
.setPositiveButton(R.string.ok)
.setNegativeButton(R.string.cancel)
- .setPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION})
+ .setPermissions(new String[]{TrustedNetworkHelper.ACCESS_WIFI_NETWORKS_PERMISSION})
.setRequestCode(0)
.create().show(getSupportFragmentManager(), null);
}