The RhoElements APD does not currently support bi-directional communication. So using the APD will not give you any way to verify printing has occurred or even if the print job was successfully received by a printer. There are a few ways to get around this restriction though. The most common way is to send the data to a server (via websocket). The server then sends a print job to a printer via TCP, and verifies that the job has been sent without errors. The server than can respond to the RhoElements app about the status of the print. There are other ways to get bi-directional communication, but they are mostly more complicated and would depend on the type of printer in use. If you are using Bluetooth, it really does depend on the printer as to what your options are.
I am using a bluetooth printer but it does not seem there are internal APD commands to check status. Are there any work arounds where we can talk via bluetooth to the printer without using APD?
Thanks in advance.
You are right, there are no APD commands to check status.
The most common way to communicate to a Bluetooth device, not using the APD, is to create a NPAPI plugin (https://developer.motorolasolutions.com/community/rhomobile-suite/docs/developer-reference/blog/2012/04/10/creating-an-npapi-for-rhoelements). Many printer manufacturers have SDK libraries to help enable communications, but they need to be wrapped in a NPAPI plugin to work within RhoElements. I work for Zebra Technologies so I am most familiar with our SDKs (http://www.zebra.com/us/en/products-services/software/adapt-software.html) and how they work, but most printer companies have libraries you can use for mobile devices. Creating one of these plugins is not easy, but it's worth it to create maintainable and reliable software.
Hope this helps.