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

ANCS Sample doesn't work after rebooting iOS Device

I'm testing ble_app_ancs experimental sample.

It seems working first connection. But after rebooting iOS Device, or Turn Off/On bluetooth function on iOS Device, ANCS does't work.

After delete bonding both evaluation board and iOS Device, it works again. Is there any infomation about this issue?

Testing Environment

iOS Device iPod touch 5th Gen. iOS 7.0.3 iPhone 5 iOS 7.0.3

BLE Board nrf6310 Rev 1.4 nrf6350 Rev 2.0 PCA10004 Rev 2.1.0 Softdevice 6.0.0-5beta

Parents
  • Hi Ole,

    I found that I had to keep my code mentioned above:

    case BLE_GAP_EVT_CONN_PARAM_UPDATE:
    case BLE_GAP_EVT_AUTH_STATUS:
    apple_notification_setup();
    break;
    

    and, add the following:

    ble_ancs_c_t * timer_p_ancs;
    
    void timer_service_discovery(void)
    {
        service_disc_req_send(timer_p_ancs);
    }
    
    static void event_discover_rsp(ble_ancs_c_t * p_ancs, const ble_evt_t * p_ble_evt)
    {
        if (p_ble_evt->evt.gattc_evt.gatt_status != BLE_GATT_STATUS_SUCCESS)
        {
            // ignore failure - retry in one second
            //handle_discovery_failure(p_ancs, p_ble_evt->evt.gattc_evt.gatt_status);
    
            timer_p_ancs = p_ancs;
            // call function timer_service_discovery in 1000ms, don't repeat
            start_new_timer(timer_service_discovery, 1000, false);
    ...
    
    

    This seems to allow notifications after bluetooth has been turned off and on, AND after the iPhone has been turned off and on.

    Please let me know if you think this is a suitable work-around, or what needs changing and where about in the source.

    Thank you for all your help so far, Paul.

  • Fabio: no, it required BOTH snippets in this post. i.e. also the bit adding the retry timer to event_discover_rsp. You will need to do this differently as you do not have my 'start_new_timer' function, but perhaps you can use Nordics app_timer or write your own timer to call the function after 1 second. I don't think I needed whitelisting (if I remember correctly).

Reply
  • Fabio: no, it required BOTH snippets in this post. i.e. also the bit adding the retry timer to event_discover_rsp. You will need to do this differently as you do not have my 'start_new_timer' function, but perhaps you can use Nordics app_timer or write your own timer to call the function after 1 second. I don't think I needed whitelisting (if I remember correctly).

Children
No Data
Related