mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-22 01:51:47 +00:00
Use NEARBY_WIFI_DEVICES instead of ACCESS_FINE_LOCATION
In Android 13+, this permission is enough EDIT: DO NOT MERGE, the new permission doesn't allow wifiInfo.getSSID()
This commit is contained in:
parent
118d8784fa
commit
3986883bc7
@ -24,6 +24,7 @@
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" android:usesPermissionFlags="neverForLocation"/>
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
@ -39,8 +40,8 @@
|
||||
<uses-permission android:name="android.permission.RECEIVE_MMS" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="32" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="32" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||
|
@ -403,6 +403,7 @@
|
||||
|
||||
<string name="location_permission_needed_title">Permission required</string>
|
||||
<string name="location_permission_needed_desc">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.</string>
|
||||
<string name="wifi_permission_needed_desc">KDE Connect needs permission to know the WiFi network you are connected to.</string>
|
||||
<string name="clipboard_android_x_incompat">Android 10 has removed clipboard access to all apps. This plugin will be disabled.</string>
|
||||
<string name="mpris_open_url">Continue playing here</string>
|
||||
<string name="cant_open_url">Can\'t open URL to continue playing</string>
|
||||
|
@ -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 = "<unknown ssid>";
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user