Android Üzerinden Bluetooth Yazıcıya Birşeyler Göndermek -2 (Bağlantıyı Açık Tutmak-Yazdırmak-Bağlantıyı Kapatmak)

selamlar. bir önceki yazımızda android bir cihazdan bluetooth yazızıya bağlanmıştık. şimdi sıra geldi metin yazdırmaya. aşağıda tanımladığımız fonksiyonlarla sırayla yazıcıya metin gönderip yazıcıyı kapatacağız.

/*bu listener ile yazıcıya göndereceğimiz datayı dinleyelim*/
    void beginListenForData() {
        try {
            final Handler handler = new Handler();
            
            //Yeni bir satır 
            final byte delimiter = 10;

            stopWorker = false;
            readBufferPosition = 0;
            readBuffer = new byte[1024];
            
            workerThread = new Thread(new Runnable() {
                public void run() {
                    while (!Thread.currentThread().isInterrupted()
                            && !stopWorker) {
                        
                        try {
                            
                            int bytesAvailable = mmInputStream.available();
                            if (bytesAvailable > 0) {
                                byte[] packetBytes = new byte[bytesAvailable];
                                mmInputStream.read(packetBytes);
                                for (int i = 0; i < bytesAvailable; i++) {
                                    byte b = packetBytes[i];
                                    if (b == delimiter) {
                                        byte[] encodedBytes = new byte[readBufferPosition];
                                        System.arraycopy(readBuffer, 0,
                                                encodedBytes, 0,
                                                encodedBytes.length);
                                        final String data = new String(
                                                encodedBytes, "US-ASCII");
                                        readBufferPosition = 0;

                                        handler.post(new Runnable() {
                                            public void run() {
                                                datagosterilecekAlan.setText(data);
                                            }
                                        });
                                    } else {
                                        readBuffer[readBufferPosition++] = b;
                                    }
                                }
                            }
                            
                        } catch (IOException ex) {
                            stopWorker = true;
                        }
                        
                    }
                }
            });

            workerThread.start();
        } catch (NullPointerException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*
     * Datayı gonderelim
     */
    void sendData() throws IOException {
        try {
            
            // kullanici tarafından girilen deger
            String msg = textbox.getText().toString();
            msg += "n";
            
            mmOutputStream.write(msg.getBytes());
            
        } catch (NullPointerException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*
     * bluetooth yazıcı ile olan bağlantıyı kapatalım
     */
    void closeBT() throws IOException {
        try {
            stopWorker = true;
            mmOutputStream.close();
            mmInputStream.close();
            mmSocket.close();
        } catch (NullPointerException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }