You need to open the connection before using the ZebraPrinterFactory. It checks a few settings on the printer to set up the ZebraPrinterLinkOS object. You also don't need the 10 second sleep after creating the ZebraPrinter.
Something like this should work:
Connection connection = new BluetoothLeConnection(macAddress, this); connection.open(); ZebraPrinter printer = ZebraPrinterFactory.getInstance(PrinterLanguage.ZPL, connection); ZebraPrinterLinkOs linkOsPrinter = ZebraPrinterFactory.createLinkOsPrinter(printer, PrinterLanguage.ZPL); linkOsPrinter.downloadTtfFont("/storage/emulated/0/fonts/DroidItalic.ttf", "Z:");
Thank you very much!