2013-01-01 22 views
7

Sto scrivendo un'applicazione che invia dati alla stampante bluetooth. Qualcuno può aiutarmi ? come posso utilizzare lo stack Bluetooth Android per la stampa? o c'è qualche api o sdk esterno da usare?Stampa Bluetooth Android

Ecco il mio codice per la ricerca del bluetooth ...

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
registerReceiver(ActionFoundReceiver, 
     new IntentFilter(BluetoothDevice.ACTION_FOUND)); 

private final BroadcastReceiver ActionFoundReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
      BluetoothDevice device = intent 
        .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      btArrayAdapter.add(device.getName() + "\n" 
        + device.getAddress()); 
      btArrayAdapter.notifyDataSetChanged(); 
     } 
    } 
}; 

e qui è il mio codice per l'invio dei dati alla stampante ..

BluetoothDevice mDevice = bluetoothAdapter.getRemoteDevice("00:15:FF:F2:56:A4"); 
Method m = mDevice.getClass().getMethod("createRfcommSocket", 
     new Class[] { int.class }); 
mBTsocket = (BluetoothSocket) m.invoke(mDevice, 1); 
System.out.println("Connecting....."); 
mBTsocket.connect(); 
System.out.println("Connected"); 
OutputStream os = mBTsocket.getOutputStream(); 
os.flush(); 
os.write(Receipt.getBytes()); 
// mBTsocket.close(); 

Quando scrivo socket.close(), i dati non viene stampato come stampante quando la connessione socket viene chiusa prima di stampare i dati..e se non scrivo socket.close(), i dati vengono stampati solo una volta. Non sarei in grado di stampare i dati una seconda volta finché non ricomincio bluetooth del mio telefono.

qualcuno può avere una soluzione per questo ??? o c'è qualche altro modo per sbarazzarsi di questa stampa ??

+0

Voglio inviare un semplice testo dal mio dispositivo Android alla mia stampante termica supportata bluetooth .. ma mi sono confuso su come inviare dati a quella stampante bluetooth, –

+0

@NiravBhandari: Sono bloccato con un problema simile. La mia applicazione fa praticamente la stessa cosa. Sarebbe bello se potessi contattarti per un po 'di aiuto. Grazie. :) – Swayam

+0

dimmi il tuo problema –

risposta

5

ho ottenuto la soluzione del mio problema ...

se voglio stampare i dati più di una volta, allora non avete bisogno di creare una nuova connessione socket con il dispositivo ... chiama invece il metodo outputstream.write (bytes).

e, infine, se si desidera disconnettere il dispositivo, chiamare il metodo mBTScoket.close() per disconnettere il dispositivo.

+0

Questo è ottimo, per favore don ' Segnare la mia risposta come accettata. Segna la tua risposta. perchè lo hai risolto con il tuo sforzo –

+0

quale permesso hai usato in AndroidManifest.xml? –

-1

Se è stata effettuata la connessione ai dispositivi e abbinata.

Quindi per la stampa, la stampante desidera il byte. COSÌ ho creato un filo rosso.

Basta chiamare questo metodo e passare la stringa al suo interno per essere stampato.

String str = new String("This is the text sending to the printer");

private void printData() { 
    // TODO Auto-generated method stub 

    String newline = "\n"; 
    try { 
     out.write(str.getBytes(),0,str.getBytes().length); 
     Log.i("Log", "One line printed"); 
    } catch (IOException e) { 
     Toast.makeText(BluetoothDemo.this, "catch 1", Toast.LENGTH_LONG).show(); 
     e.printStackTrace(); 
     Log.i("Log", "unable to write "); 
     flagCheck = false; 
    } 
    try { 
     out.write(newline.getBytes(),0,newline.getBytes().length); 
    } catch (IOException e) {   
     Log.i("Log", "Unable to write the new line::"); 
     e.printStackTrace(); 
     flagCheck = false; 
    } 
    flagCheck = true; 
} 
+0

grazie per il tuo uomo di risposta ... in realtà non ero in grado di connettermi alla stampante. Ho provato come sito web per sviluppatori Android citato ... puoi aiutarmi come posso collegare il mio dispositivo Android alla stampante? –

+0

Si prega di rispondere per le domande che sto chiedendo qui, in modo da poterti aiutare in modo chiaro. Hai cercato i dispositivi usando bluetooth ?? Stai ottenendo la lista dei dispositivi bluetooth ?? Hai fatto l'abbinamento con i due dispositivi bluetooth ?? –

+0

Ho modificato la domanda con il codice di ricerca bluetooth e invio dati al bluetooth come hai detto ... pls lo recensisco –