This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

What is the difference between IOS peripheral and android peripheral?


I am developing an application for Android and IOS. 

Faced a problem when try connect  nRF Connect as central (on Android) to nRF Connect as peripheral (on IOS)

(screenshot from  nRF Connect as central (Android))
Why is this happening and how can this be solved?

I have the same problem when I try connect nRF52832 as central to IOS peripheral (on Android all works fine)



Parents Reply
  • So why wouldn't you mentioned about the cordova app earlier ? and you wanted us to test with nRF Connect on iOS ? 


    The sniffer trace you provided doesn't show much information as the sniffer couldn't decode the encryption. You would need to sniff the communication before bonding happens. This way the sniffer can catch the trace. 
    This also showed that you would need to do bonding before you can read the GATT server on the phone. This is not implemented in the ble_app_uart_c 

    You won't be able to write into the CCCD of the server if it require encryption. I'm not sure if you can remove this requirement on iOS. But you can check inside the GATT server by cordova to see if it can have the characteristic without bonding ? 
    Otherwise you would need to implement bonding in ble_app_uart_c , please have a look at the ble_app_hrs_c at the call pm_conn_secure() inside hrs_c_evt_handler()

Children
Related