Android BLE Limitation - Max Notification Reached, Registration Failed.

2,817 views
Skip to first unread message

Abhishek Sharma

unread,
Nov 22, 2013, 5:56:21 AM11/22/13
to android-...@googlegroups.com
Hi,

I am developing an android ble based application where I register for multiple BLE services and receive notifications. It works fine with concurrent notification received for four BLE characteristics. As soon as I register for notification for the fifth one, I get the following error:

E/bt-btif ( 1193): Max Notification Reached, registration failed.

After digging into the android source code, I have found that it is defined as a constant. They allow only 4 concurrent register notifications.


This is a limitation of Android BLE SDK unlike other platform SDK (ex: iOS). Are there any reasons for such limitation because it is really holding android back as compared to other platforms?




Niclas Granqvist

unread,
Dec 7, 2013, 5:37:12 PM12/7/13
to android-...@googlegroups.com
4 sounds low ...

Abhishek Sharma

unread,
Jan 7, 2014, 5:08:43 AM1/7/14
to android-...@googlegroups.com
It has been increased to 7 after 4.4 update.

Friedrich Mäckle

unread,
Jul 9, 2014, 3:51:50 AM7/9/14
to android-...@googlegroups.com
I am interested in this issue as well as i am having problems with this limitation.

Is there any technical reason to limit these notifications to 7? I am working on a relatively complex device with several sensors (7) and several actors (7).

I created characteristics for each sensor and actor which seemed to be the way to go. But due to this limitation i cant subscribe to all of them. So what can i do?

1.) Stuff multiple characteristics into one, bad since i will transmit unchanged sensor values and create a lot of dummy data.
2.) Use notification only and set the sensor which is transmitted within the payload.
3.) Read manually interval based.

This is annoying since i will have to go with solution 1.) and stuff more data into one characteristic. I think this is crippling the possibilities i have and seriously affecting the design of my solution.

Niclas Granqvist

unread,
Jul 9, 2014, 4:20:44 PM7/9/14
to android-...@googlegroups.com
I am sure Google can change this if there is a need.

In the mean time I propose that you solve the problem
by adding a multiplexer protocol on top of GATT.
I guess that one byte is enough and a one byte extra 
load is negligible from current consumption point of view. 
This way you don't need to resend the data.
You could also use the byte to invent new payloads
in the future.....

Niclas Granqvist



--
You received this message because you are subscribed to a topic in the Google Groups "android-platform" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/android-platform/FNHO5KB4sKI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to android-platfo...@googlegroups.com.
To post to this group, send email to android-...@googlegroups.com.
Visit this group at http://groups.google.com/group/android-platform.
For more options, visit https://groups.google.com/d/optout.



--
Kind Regards,

Niclas Granqvist
Skype: niclas_granqvist_work
mobile: +41(0)798149161
Reply all
Reply to author
Forward
0 new messages