This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Android app to expose BLE services

Other Parts Discussed in Thread: CC2640

Hi all,

After much reading and testing on my own environment (CC2640 running timeApp and Nexus 5 acting as central device), I have concluded (not 100% verified) that Android BLE stack does not exposes BLE services (other than GAP and GATT):

I create this thread to know if anybody knows an Android app to be used in an Android device acting as a central device and exposing most of services, for example the ones trying to be discovered by TimeApp example. I have found some apps about BLE, but they are designed to act as the peripheral and client role, and so discover services in remote devices, not exposing the services on the own Android device.

Does anybody know  any app or solution for this purpose (maybe anybody who has used timeApp successfully? 

Thanks a lot!

Regards

  • Hello,

    Services, by definition, are typically implemented above GATT. Android, like most smartphone OS's, provide application access at the GATT layer. There are a plethora of apps in the app store that 'expose' services by allowing you to discover/browse the GATT characteristic table on a Server. To implement the Client functionality of a particular service or profile, logic needs to be implemented by the particular app to process the data associated with the characteristic.

    Can you elaborate on what functionality is missing in Android that prevents implementing a GATT based service?

    Best wishes

  • Hi JXS,

    I can summarize my problem in the following way: I try to use your TimeApp application running on our custom board with CC2640. I can connect/pair with my Nexus 5 running Android 5.1. Then, when TimeApp tries to discover services (Current Time, Alert Notification, Phone Alert Satatus, etc.), it fails to discover all of them (ATT_NOT_FOUND). This happens no matter the android app I am using on my Nexus 5 (I have tried using only Android menu settings, and also with apps like "BLE Scanner" and similars...).

    So, what I was asking is if there is an Android app that I can install on my Nexus 5, and so, TimeApp can discover all services (and their characteristics) it looks for.

    Thank you very much.

  • Hi,

    In this case, you would need to implement the GATT Server function in your Android App with the associated services. You would add these services to your apk. I don't know of any existing apk's that implement this, but you could develop one using the Android GattServer class: developer.android.com/.../BluetoothGattServer.html

    For iOS, this does work.

    Best wishes
  • Hi JXS,
    Thank you very much for your explanations. Developing such android app is effectively in our plans (I was looking for one only to be used in our previous tests). In the other way, I think I can try with my iPad mini to see if it works for this case.

    Thank you. Regards.