Android: Bluetooth printing

androidbluetooth

I have to develop an App for Android tablets that demands printing files to a
Bluetooth printer. Printing over Bluetooth is one of the most important features of my app. Unfortunately, there's not a lot of information about this subject so I'd like to ask for advice.

As far as I know it's not possible to print over Bluetooth on Android (using native calls), as Android's BT Stack doesn't implement BPP (Basic Printing Profile). Doing a little research I've found the following alternatives:

SDKs/Libraries

  • Sybase-iAnywhere-Blue-SDK-for-Android : Commercial SDK that supports
    a lot of BT profiles. Developed by a large company (good support I
    guess). I have not found a lot of information about this one. Is
    there some documentation,API or examples on how to use this SDK? Does
    anybody know how to download the demo version? (link seems to be
    broken last time I tried)
  • iPrint SDK: Commercial SDK. Some examples on their website but nothing else.
  • Zebralink: Only for Zebra printers (naturally). Other manufacturers probably have APIs for their printers too.

Google Play Apps

  • PrinterShare: Commercial (Premium key)
  • Bluetooth Smart Printing: Free and lightweight. Claims to print to Bluetooth printers.

Ideally I wouldn't want to be tied to a specific brand or printer model. Now the questions:

  • What do you think it would be the best choice?
  • Do you know any other alternative that I've missed?
  • Can I easily print files from my App using an external App?
  • What format should I use for my files to be able to print them over
    Bluetooth? (pdf,images,etc.)
  • Any advices on printer manufacturer and models?
  • Have you had any real experience printing over Bluetooth on Android?
  • Is there any plans in the immediate future to implement Bluetooth
    printing on Android?

Thanks in advance for your help 😉

Best Solution

Star Micronics has an SDK for Android printing via Bluetooth (as well as ethernet and USB). You can download it here: http://www.starmicronics.com/support/SDKDocumentation.aspx.

As you mentioned, you can't print natively at this point in time so the alternate solutions you found are your options today.

In my experience, it's best to use an API and not an external application. The biggest reason is you get total control over printer behavior. It's easy too if the API is built intelligently. Using an external app is limiting because you can't customize your print outs the way you want to.

The Star SDK I linked you to has a really nice sample app that lets you test and customize a lot of printer functions to see them in action. Each function is documented in the source code. The commands and their parameters are also available in the app itself as a quick on screen reference which is convenient. On top of all that, it's well documented.

Star's a great company to work with because you can get a free demo printer of your choice to use for your development.

If you choose this way, you can send plain text to the printer along with commands. The API handles converting the data into what the printer can understand.