Hi, I am a developer of a device.
This device has a small CPU and uses a BlueTooth 2.1+EDR device (connected over UART) and has the Apple authentication CoPro.
All of the iAP protocol is handled in our firmware, including authentication exchange and message protocol packing/encoding, etc.
Our device and iAP is stable and has been operating reliably for several years on multiple devices.
We have recently submitted for certification but have been told that we perform several steps incorrectly.
My main problem here is that I need to send an application launch command.
However, before doing this I need to do the GetiPodOptionsForLingo / ReiPodOptionsForLingo exchange
(to ensure that the phone supports this capability).
Reading the Apple protocol manual (R46, dated 2012--0-12, I believe this is the latest version on the Apple website), shows this command as 0x4B
The document does not give byte level examples of the messages but I believe the payload is a single byte, with a value of 0x00 (for the general lingo ID).
I am expecting a response of the message 0x4C RetiPodOptionsForLingo
(I will then parse this response ( for bits 13 and 24)
However, when I send the 0x4B (Get) message I always get the error response back - payload bytes are 0x04 and 0x4B.
According to the Apple spec this means that the message is not supported.
I have tested with an iPhone 5C, and iPhone 6S, and iPod (not sure on the exact version).
All of these devices are using current iOS firmware (10.3.x).
Can someone tell me if there is a problem with my 0x4B message, or I have misinterpreted the Apple manual.
Maybe these devices dont support this message (I think this message should be supported in this iOS version, as it is current).
Any help on this much appreciated.
NB: I am confident that my message protocol stack is good, because we can do authentication and message exchange - we have been doing this for several years, using hundreds of messages per minute.
Thanks - Graeme