Error 908 the permission android.hardware.bluetooth_le has been denied

Hi ,
My name is Alen . I have this problem in my phone as shown in my mit app companion ai . i dont know how i can solve this issue ? is it with the phone or the blocks that i included . I will send my blocks too . So should i remove " ask for permission block " ?


My guess, based on the error, is that you need to give the companion app permission to do bluetooth stuff. There are no errors or warnings from the blocks, so those are probably fine.

IS there a problem if i remove this permission from my app ?

if i cannot remove the block , how will i do ?
is this how u do ?

Yes, that looks... relevant, at least? If you want your app to do bluetooth stuff, then I would guess that the companion app needs bluetooth permission.
If you remove the bluetooth-related blocks from your code, then your app will no longer work with bluetooth.

This is not my area of expertise, but I remember some posts where pulling a BlueTooth Client component in the Designer brings along permissions needed for BLE.

how can i let the mit app companion permission to do the work ?

What about trying it? What happens then?
Taifun

YES , the app never asked it .
Thank You

To be clear android.hardware.bluetooth_le is not a a permission. Permissions are in the namespace android.permission, such as android.permission.BLUETOOTH. The android.hardware namespace is used for declaring hardware support in the manifest and is independent of the permission model. The reason you see the permission denied dialog as shown in your screenshot is because it's not a valid permission and therefore since it's not a permission is naturally denied.

1 Like

1)Is permission important if i develop it into an android app as the phone ask to permit the app to the user ? i do need to have problems in the future . thats y i asked :grinning:
2)android.permission.BLUETOOTH is a permission for BLE device ? since BLE is different from Classis Bluetooth . If no , which is the correct permission ?
3)I am using hm10 ble , so the "android.hardware.bluetooth_le" is important in my blocks ?

Android does not differentiate between Bluetooth Versions in this case - Bluetooth is Bluetooth.

That's not true any more. Android versions prior to Android 12 needed to declare android.permission.BLUETOOTH and android.permission.BLUETOOTH_ADMIN in their app manifests to be granted access to Bluetooth on installation. Starting with Android 12, those permissions are no longer available and apps must instead declae a combination of android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, or android.permission.BLUETOOTH_ADVERTISE . Further, these permissions are considered sensitive so the app must prompt the user for permission before the OS will grant it to the app. The issue is that in the release we did last year we didn't implement that last bit which is why you have to use the AskForPermission block on the production server (my test server/companion should implement the correct logic for Android 12+).

1 Like

... but you don't have to declare 'Bluetooth LE' or 'Bluetooth Classic' in the permissions, that is what I meant.

It's been a while since nb190b was released, it would be great to have issues like this fixed and released - similarly, the file handling including saving a Canvas image.

ok , right now i have this issue . I cant find the Hm10 module on the app even though i had clicked on the scanning . Below is the block , design and the screenshot of the app too .
Could you tell me the Problem associated with this ?
Is it i dint include "android.hardware" or is there any other solution where i can find the HM10 -BLE module ?


For reference , i used the Youtube tutorial as i need to build an app where there are more than 1 bluetooth device and i need to control each one of them independatly .
So i cannot change the address in my app every time it scans different bluetooth device .
Hence i thought i could use the name of the hm10 bluetooth to connect as i could give the name of the bluetooth in my app and this remains constant .
Below is my pictorial representation of the hardware (with ble) acces with the app

The name of the HM10 is "HMSoft" as specified in the block.

If you did that, you would not know which board was which.

Hello Alen

You have 3 Topics on essentially the same subject?

  1. Using BLE with HM10 and Arduino UNO [List Picker not showing the required name of HM 10]
    List Picker not showing the required name of HM 10

  2. Using WiFi with ESP8266 and Node MCU [Control Led Bulb using node mcu using mit app inventor from things speak server]
    Control Led Bulb using node mcu using mit app inventor from things speak server

  3. Using BLE with multiple HM10s and Arduinos [Error 908 the permission android.hardware.bluetooth_le has been denied]
    Error 908 the permission android.hardware.bluetooth_le has been denied

The BLE Topics cross-pollinate, you should read both carefully as you repeat the same questions - however, didn't you decide to use WiFi instead?