in src/Covi.Android/Features/Bluetooth/PlatformInitializer.cs [30:67]
public async Task<InitializationResult> InitializeAsync()
{
var result = new InitializationResult()
{
PermissionStatus = PermissionStatus.Unknown,
Success = false
};
// Android uses location permissions for BLE
var status = await Xamarin.Essentials.Permissions.CheckStatusAsync<Xamarin.Essentials.Permissions.LocationWhenInUse>();
result.PermissionStatus = status;
if (status != PermissionStatus.Granted)
{
status = await Xamarin.Essentials.Permissions.RequestAsync<Xamarin.Essentials.Permissions.LocationWhenInUse>();
result.PermissionStatus = status;
}
result.Success = result.PermissionStatus == PermissionStatus.Granted;
if (result.Success)
{
var adapter = BluetoothAdapter.DefaultAdapter;
if (adapter == null)
{
result.Success = false;
result.PermissionStatus = PermissionStatus.Disabled;
}
else
{
if (!adapter.IsEnabled)
{
result.Success = false;
result.PermissionStatus = PermissionStatus.Disabled;
}
}
}
return result;
}