Android permissions - BLE - Android 12

I'm not sure if I understood correctly. There are several Android verisons like 5.x, 7.x, 8.x.
Apart from that, the minSdkVersion is not 21 when using the BLE extension:


Yes, ACCESS_FINE_LOCATION is automatically requested with Bluetooth.StartScanning.

1 Like

I have tested on other smartphone (os 11) and the error is there again.
I will try to investigare showing the versioncode.

version code detect on smartphone:
android 11 (redme note 9) = versioncode 30
android 12 (samsung s10p) = versioncode 31
I will try with trigger at 30 inside of 28

Try this one (tested on Android 9, 10, 11, 12):
BLE_permissions_allAndroidVersions.aia (191.7 KB)



The > operator will coerce the strings to numbers so what I proposed will work so long as the version number is specified as major.minor and minor never goes above 10, but 4.2.2 is not a number so the block will raise an error.

While the BLE extension does not force a minSdk, the logic of the component is written such that its blocks do nothing on versions less than 21. We didn't want to surprise people who added the BLE extension to their app with the increase to minSdk 21, especially if the BLE functionality might be optional. Of course, this decision made way more sense when BLE first came out and most phones didn't support it yet.

Of course there is a way to do it without an extension.

please help i tried your code Anke
but it doesn't list my hc-05
it exists on android and i can pair but in app inventor application it is not listed

il m'affiche le message suivant dans appinventor
Need android.permission.BLUETOOTH_SCAN permission for AttributionSource { uid = 10686, packageName =, attributionTag = null, token = android.os.BinderProxy@9e88c90, next = null }: GattService registerScanner
Note: Vous n'allez pas voir une autre erreur rapportée pour 5 secondes.

aide svp

see this thread

PS: I now moved youor question and related answers to the correct thread...

This is an issue related to the Android 12 update. The currently published BluetoothLE extension is not aware of Google's latest changes to Bluetooth, and so it fails for that reason. You should be able to use the AskForPermission block to request the BLUETOOTH_SCAN and BLUETOOTH_CONNECT permissions to connect to BLE devices on Android 12+.

Edit: I should mention that I am in the process of updating the BLE extension to address the changes in Android 12. Please keep an eye on the IOT category of this community for the update announcement.

1 Like

bravo Anke
je vous remercie pour l'effort fournis
normalement ca va bien marcher
mais a quoi sert l'extension GetApilevel1

merci infiniment

1 Like

Btw, search ...

Great, thanks, this saved me.

Hi Anke, your aia blocks worked fine with two synchronised BLE devices and only needed to be implemented once, many thanks, Peter

1 Like

Thanks, it helped me as well.

1 Like

Thanks to Anke's help, it is getting better, but with Android 11 sdk v30,I have the msg that the permission ACCESS_FINE_LOCATION has been denied and that I should enable it in the app settings.

It aready asked for granting access to location right before ( the "common" location request ) so the main location authorization is there.

I have read on Internet that for Android 11, on Java; it also needs "coarse" and "background" location authorization requesst. I have tried again for "coarse", no change. And I do not see a "background" location inside the available authorization list.

I moved all authorization request blocks up before any scanning operation. No luck.

It would really help if you provided a screenshot of your relevant blocks, so we can see what you are trying to do, and where the problem may be.

To get an image of your blocks, right click in the Blocks Editor and select "Download Blocks as Image". You might want to use an image editor to crop etc. if required. Then post it here in the community.


Trying to push the limits! Snippets, Tutorials and Extensions from Pura Vida Apps by icon24 Taifun.