Skip to content
This repository was archived by the owner on May 15, 2024. It is now read-only.

Commit 3c8bff9

Browse files
GH-1142 AccessBackgroundLocation only when compile & running Q (#1143)
* AccessBackgroundLocation only when compile & running Q * put if compile check around permission
1 parent 1dde9e3 commit 3c8bff9

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

Xamarin.Essentials/Permissions/Permissions.android.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,15 +224,22 @@ public override (string androidPermission, bool isRuntime)[] RequiredPermissions
224224

225225
public partial class LocationAlways : BasePlatformPermission
226226
{
227-
public override (string androidPermission, bool isRuntime)[] RequiredPermissions =>
228-
new (string, bool)[]
227+
public override (string androidPermission, bool isRuntime)[] RequiredPermissions
228+
{
229+
get
229230
{
231+
var permissions = new List<(string, bool)>();
230232
#if __ANDROID_29__
231-
(Manifest.Permission.AccessBackgroundLocation, true),
233+
if (Platform.HasApiLevelQ)
234+
permissions.Add((Manifest.Permission.AccessBackgroundLocation, true));
232235
#endif
233-
(Manifest.Permission.AccessCoarseLocation, true),
234-
(Manifest.Permission.AccessFineLocation, true)
235-
};
236+
237+
permissions.Add((Manifest.Permission.AccessCoarseLocation, true));
238+
permissions.Add((Manifest.Permission.AccessFineLocation, true));
239+
240+
return permissions.ToArray();
241+
}
242+
}
236243
}
237244

238245
public partial class Maps : BasePlatformPermission

Xamarin.Essentials/Platform/Platform.android.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,13 @@ internal static AndroidUri GetShareableFileUri(string filename)
173173
false;
174174
#endif
175175

176+
internal static bool HasApiLevelQ =>
177+
#if __ANDROID_29__
178+
HasApiLevel(BuildVersionCodes.Q);
179+
#else
180+
false;
181+
#endif
182+
176183
internal static bool HasApiLevel(BuildVersionCodes versionCode) =>
177184
(int)Build.VERSION.SdkInt >= (int)versionCode;
178185

0 commit comments

Comments
 (0)