Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

service changed problem

Dear friend

Based on sdk17.0.2, in the ble_app_hrs routine, set NRF_SDH_BLE_SERVICE_CHANGED to 1, and by observing with nrf connect app, you can see that the Android phone is connected, you can see "service changed" and operable, but the Apple phone is connected, and cannot see "service changed",Why is this?

Android phones may see "service changed", but how to verify that the device actively sends "service changed" after the service is changed?

If the device service changes, how does the device notify the host?

  • Hi,

    iOS will hide certain services used by the system from the application. So you will not see the service changed characteristic in nRF Connect for iOS.

    To verify the device actually sends service changed indications you could capture an airtrace of the bluetooth traffic and check that the service changed indication is sent.

  • NRF_SDH_BLE_SERVICE_CHANGED is set to 1, if the service changes, will the application automatically send service changed?
    Can I use 52840-dongle and Wireshark to capture service change instructions?

  • Service changed is only sent if the peer subscribes to service changed indications, which they should be doing if bonding is supported. Assuming you are using the peer manager it will send a service changed indications to bonded peers -> Peer Manager

    Not sure, but I think the wireshark sniffer can capture just works legacy pairing. But for other security levels it is likely the link is encrypted before the service changed indications can be captured by the sniffer.

Related