CYBLE PROC, CySmart, Android Authenticate Pairing | Cypress Semiconductor
CYBLE PROC, CySmart, Android Authenticate Pairing
This is probably more of an Android problem rather than CYBLE, but I hoped someone might have some insight.
I have developed a server using CYBLE-022001-00 and am testing this with the CySmart app on some Android devices. On a Nexus 5X with Android 6.0.1 my server works as intended: With Security Mode: 'Mode 1', Security Level: 'Authenticated pairing with encryption', I/O Capabilities: 'Display', Bonding Requirement: 'Bonding', when I touch 'pair' in CySmart a dialog appears asking for a passkey. When I enter this the device is paired and I can read and write its characteristics.
However doing exactly the same thing with a Lenovo Yoga Tablet 2 with Android 5.0.1, CySmart does not prompt for the passkey and goes directly to "paired". When I go into the GATT database, I can enumerate the characteristics, but an attempt to read them is met with no response at all (not even an error message). The only way I was able to get the server working on this tablet was to set Security Level (on the CYBLE BLE Component) to 'No security. No Authentication, No Encryption'.
I have Googled this extensively, but cannot find any decent information on BLE support at different versions of Android or on different hardware. I do not know if this is something that does not work until Android 5.1 or 6, or if it is a hardware limitation with the Blootooth chip in this particular Tablet. The behavior is similar when I use pairing from the Android Settings Bluetooth page (prompts for passcode on the Nexus, pairs without this prompt on the Lenovo).
Any ideas anyone?