Issue with peripheral hids keyboard and iOS

Hello,

I am testing the "peripheral_hids_keyboard" sample from the Nordic Connect SDK v2.9.0 using the corresponding toolchain version. When connecting the device to an iPhone running the latest iOS version, I noticed that the Bluetooth settings only provide the option to "Forget This Device", but not a "Disconnect" button.

This behavior is different from other Bluetooth accessories, which typically allow the user to disconnect without unpairing. I would like to confirm if this is expected behavior for HID BLE devices on iOS or if there is a configuration in the SDK that might enable the disconnect option.
Could you please clarify if there is a way to modify this behavior, or if it is a known limitation with iOS and HID BLE devices?

Parents
  • Hello,

    The examples are just setup to provide some basic functionality, there is no problem to add some kind of timeout handler (or button press), which for instance after a period of inactivity (or on button press) can disconnect and go to a deep sleep state.

    Kenneth

  • I have tested the nRF Desktop (HID) application on my iphone. 
    https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf_desktop/README.html
    nRF Desktop is a more complete application for HID than the simple sample. Also nRF Desktop is in nRF Connect SDK. 

    However, even with nRF Destkop, I see the same as Arthur: on the iOS, when I click on (i) on the bluetooth settings, I get only the "Forget This Device" option. 

    On the contrary, when using my classic BT audio headset, ios indeed offers the "disconnect" option.
    However, I have not tested other BLE devices to see if limitation is on BLE or HID or somewhere else. 
    Any suggestion? 

  • According to chatgpt it's not possible, but I have asked internally in any case.

    Kenneth

  • We can see the same, so I expect it's an iOS limitation.

    Kenneth

  • Hello, and thanks for your time.

    We have this exact same issue, on windows and mac. Im sure the operating system designers have a great reason, but we also would like to be able to disconnect without unpairing, yet neither windows 10 nor mac give us that option. Either we unpair or nothing.

    Is there some lateral thinking hack we can do, can we add another characteristic or change appearances or something to trick windows into showing the disconnect option?

Reply
  • Hello, and thanks for your time.

    We have this exact same issue, on windows and mac. Im sure the operating system designers have a great reason, but we also would like to be able to disconnect without unpairing, yet neither windows 10 nor mac give us that option. Either we unpair or nothing.

    Is there some lateral thinking hack we can do, can we add another characteristic or change appearances or something to trick windows into showing the disconnect option?

Children
  • Not that I am aware of no. Normally you as a developer can make your own timeout handler in your application, such that if there is a minute without any user interaction you can by default disconnect in any case, but I am not aware of any way of doing this from the central side no.

    Kenneth