We are a company which specialises on manufacturing barcode and RFID reader as an external accessory on Apple mobile devices, like iPhone and iPod touch. The accessory connects directly to the dock connector/ lightning connector and the read data will be transferred from the hardware connection. In my understanding, if I want an application to talk to the hardware, I need to enable external accessory protocol support in the project Info.Plist, and create a listener to monitor the incoming data fired from the accessory. Data parsed from the listener will be available in the application itself only. This method works for me and I have some nice app created on app store.
What we are looking for right now is to enable the “keyboard wedge” technique in the iOS. On top of the own-built application, we would like to make the data be available on any other running applications; even they do not programmatically connect to the external accessory. We have already implemented similar projects on other mobile platforms, by using a small application which runs on the background and listens to the external accessory. When it receives the data from the hardware, it emulates the virtual keyboard and fire the key press event. The character/symbol pressed will print on where the control (for instance a text field) focused on.
As far as I know, this method does not work because we are not able to create an application which emulates the virtual keyboard and “type” in another application when the background app receives data from the external accessory. I did some research on the web before. Some developers suggest emulating a Bluetooth keyboard connected to the device. However, my external accessory does not have a Bluetooth modules installed and I do not know if there is any way to emulate the Bluetooth keyboard from an application.
Can anyone please share your thoughts on how to resolve my issue?