diff --git a/ShimmerBLE/MultiVerisenseExample/MultiVerisenseExample.Android/MainActivity.cs b/ShimmerBLE/MultiVerisenseExample/MultiVerisenseExample.Android/MainActivity.cs index 4dd0c938..7b478911 100644 --- a/ShimmerBLE/MultiVerisenseExample/MultiVerisenseExample.Android/MainActivity.cs +++ b/ShimmerBLE/MultiVerisenseExample/MultiVerisenseExample.Android/MainActivity.cs @@ -32,7 +32,9 @@ protected override void OnCreate(Bundle savedInstanceState) Manifest.Permission.Bluetooth, Manifest.Permission.BluetoothAdmin, Manifest.Permission.ReadExternalStorage, - Manifest.Permission.WriteExternalStorage + Manifest.Permission.WriteExternalStorage, + Manifest.Permission.AccessCoarseLocation, + Manifest.Permission.AccessFineLocation, }; private void CheckPermissions() diff --git a/ShimmerBLE/PasskeyConfigurationApp/PasskeyConfigurationApp.Android/MainActivity.cs b/ShimmerBLE/PasskeyConfigurationApp/PasskeyConfigurationApp.Android/MainActivity.cs index aa039cee..b609fcdc 100644 --- a/ShimmerBLE/PasskeyConfigurationApp/PasskeyConfigurationApp.Android/MainActivity.cs +++ b/ShimmerBLE/PasskeyConfigurationApp/PasskeyConfigurationApp.Android/MainActivity.cs @@ -32,7 +32,9 @@ protected override void OnCreate(Bundle savedInstanceState) Manifest.Permission.Bluetooth, Manifest.Permission.BluetoothAdmin, Manifest.Permission.ReadExternalStorage, - Manifest.Permission.WriteExternalStorage + Manifest.Permission.WriteExternalStorage, + Manifest.Permission.AccessCoarseLocation, + Manifest.Permission.AccessFineLocation, }; private void CheckPermissions() diff --git a/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp.Android/MainActivity.cs b/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp.Android/MainActivity.cs index b7c48414..a1937eab 100644 --- a/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp.Android/MainActivity.cs +++ b/ShimmerBLE/VerisenseBLEDemoApp/VerisenseBLEDemoApp.Android/MainActivity.cs @@ -35,10 +35,35 @@ protected override void OnCreate(Bundle savedInstanceState) ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); - CheckPermissions(); + bool minimumPermissionsGranted = CheckPermissions(); + + if (!minimumPermissionsGranted) + { + RequestPermissions(Permissions, 0); + } Xamarin.Essentials.Platform.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); + + if (minimumPermissionsGranted) + { + LoadAppAndRegisterReceiver(); + } + } + + private void LoadAppAndRegisterReceiver() + { + LoadApplication(new App()); + + bluetoothAdapter = BluetoothAdapter.DefaultAdapter; + BroadcastReceiverPairingRequest = new BroadcastReceiverPairingRequest(); + BroadcastReceiverBondStateChanged = new BroadcastReceiverBondStateChanged(); + + IntentFilter filterPairingRequest = new IntentFilter(BluetoothDevice.ActionPairingRequest); + filterPairingRequest.Priority = (int)Android.Content.IntentFilterPriority.HighPriority; + RegisterReceiver(BroadcastReceiverPairingRequest, filterPairingRequest); + IntentFilter filterBondStateChanged = new IntentFilter(BluetoothDevice.ActionBondStateChanged); + RegisterReceiver(BroadcastReceiverBondStateChanged, filterBondStateChanged); } protected override void OnDestroy() { @@ -60,22 +85,16 @@ protected override void OnDestroy() } base.OnDestroy(); } - private void CheckPermissions() + private bool CheckPermissions() { - bool minimumPermissionsGranted = true; - foreach (string permission in Permissions) { if (CheckSelfPermission(permission) != Permission.Granted) { - minimumPermissionsGranted = false; + return false; } } - - if (!minimumPermissionsGranted) - { - RequestPermissions(Permissions, 0); - } + return true; } public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) { @@ -83,17 +102,7 @@ public override void OnRequestPermissionsResult(int requestCode, string[] permis base.OnRequestPermissionsResult(requestCode, permissions, grantResults); - LoadApplication(new App()); - - bluetoothAdapter = BluetoothAdapter.DefaultAdapter; - BroadcastReceiverPairingRequest = new BroadcastReceiverPairingRequest(); - BroadcastReceiverBondStateChanged = new BroadcastReceiverBondStateChanged(); - - IntentFilter filterPairingRequest = new IntentFilter(BluetoothDevice.ActionPairingRequest); - filterPairingRequest.Priority = (int)Android.Content.IntentFilterPriority.HighPriority; - RegisterReceiver(BroadcastReceiverPairingRequest, filterPairingRequest); - IntentFilter filterBondStateChanged = new IntentFilter(BluetoothDevice.ActionBondStateChanged); - RegisterReceiver(BroadcastReceiverBondStateChanged, filterBondStateChanged); + LoadAppAndRegisterReceiver(); } } } \ No newline at end of file