Imprimir en Bluetooth Adapter desde Android.

n este tutorial, les dejare la información y el código necesario para imprimir en una impresora Bluetooth desde Android.
Este es un tutorial para imprimir texto en una impresora Bluetooth, desde android genérico, asegúrate de revisar por si tu impresora tenga algún tipo de SDK que te pueda facilitar el proceso.
Tutorial paso a paso
 1: Ejecutar Android Studio.
 2: Crea un nuevo proyecto:
 3: Introduzca los datos del proyecto.
 4: Seleccione la plataforma deseada.
 5: Seleccione Empty Activity
 6: Termine con los datos de la aplicacion y presione Finalizar.
 7: En  Android Manifest .xml agregue los permisos necesarios para acceder a los componentes Bluetooth.

<uses-permission android:name="android.permission.BLUETOOTH"/>

 8:  Agregar Text view (label), Edite el texto del view (text box) y los  Butones en activity layout. 

<LinearLayout android:layout_width="368dp" android:layout_height="495dp" android:orientation="vertical" tools:layout_editor_absoluteY="8dp" tools:layout_editor_absoluteX="8dp"> <TextView android:id="@+id/lbl" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Agregar Printer" android:padding="5dp"/> <TextView android:id="@+id/lblPrinterName" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="Printer"/> <EditText android:id="@+id/txtText" android:layout_width="match_parent" android:padding="5dp" android:layout_height="150dp" /> <Button android:id="@+id/btnConnect" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="Conectar Printer"/> <Button android:id="@+id/btnDisconnect" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="Desconectar Printer"/> <Button android:id="@+id/btnPrint" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="Imprimir"/> </LinearLayout>

 9: Ahora creamos el metodo para buscar la impresora Bluetooth en Main Activity 

void FindBluetoothDevice(){ try{ bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if(bluetoothAdapter==null){ lblPrinterName.setText("No Bluetooth Adapter found"); } if(bluetoothAdapter.isEnabled()){ Intent enableBT = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBT,0); } Set<BluetoothDevice> pairedDevice = bluetoothAdapter.getBondedDevices(); if(pairedDevice.size()>0){ for(BluetoothDevice pairedDev:pairedDevice){ // My Bluetoth printer name is BTP_F09F1A if(pairedDev.getName().equals("BTP_F09F1A")){ bluetoothDevice=pairedDev; lblPrinterName.setText("Bluetooth Printer Attached: "+pairedDev.getName()); break; } } } lblPrinterName.setText("Bluetooth Printer Attached"); }catch(Exception ex){ ex.printStackTrace(); } }

 10: Agregar el metodo para abrir el adaptador Bluetooth.

void openBluetoothPrinter() throws IOException{ try{ //Standard uuid from string // UUID uuidSting = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); bluetoothSocket=bluetoothDevice.createRfcommSocketToServiceRecord(uuidSting); bluetoothSocket.connect(); outputStream=bluetoothSocket.getOutputStream(); inputStream=bluetoothSocket.getInputStream(); beginListenData(); }catch (Exception ex){ } } void beginListenData(){ try{ final Handler handler =new Handler(); final byte delimiter=10; stopWorker =false; readBufferPosition=0; readBuffer = new byte[1024]; thread=new Thread(new Runnable() { @Override public void run() { while (!Thread.currentThread().isInterrupted() && !stopWorker){ try{ int byteAvailable = inputStream.available(); if(byteAvailable>0){ byte[] packetByte = new byte[byteAvailable]; inputStream.read(packetByte); for(int i=0; i<byteAvailable; i++){ byte b = packetByte[i]; if(b==delimiter){ byte[] encodedByte = new byte[readBufferPosition]; System.arraycopy( readBuffer,0, encodedByte,0, encodedByte.length ); final String data = new String(encodedByte,"US-ASCII"); readBufferPosition=0; handler.post(new Runnable() { @Override public void run() { lblPrinterName.setText(data); } }); }else{ readBuffer[readBufferPosition++]=b; } } } }catch(Exception ex){ stopWorker=true; } } } }); thread.start(); }catch (Exception ex){ ex.printStackTrace(); } }

11:  Por ultimo el metodo para imprimir en la impresora Bluetooth  y el de desconectar.

void printData() throws IOException{ try{ String msg = textBox.getText().toString(); msg+="\n"; outputStream.write(msg.getBytes()); lblPrinterName.setText("Imprimiendo..."); }catch (Exception ex){ ex.printStackTrace(); } } // Disconnect Printer // void disconnectBT() throws IOException{ try { stopWorker=true; outputStream.close(); inputStream.close(); bluetoothSocket.close(); lblPrinterName.setText("Desconectado."); }catch (Exception ex){ ex.printStackTrace(); } }


post completo en: https://liberatumovilyayuda.blogspot.com/2018/09/imprimir-texto-en-impresora-bluetooth.html

Imprimir en Bluetooth Adapter desde Android.