Обратная связь

Я использую термопринтер bluetooth. Принтер работает нормально, но я хочу подключить принтер к одному действию и распечатать данные из другого действия. Теперь каждый раз, когда мне приходится подключаться к печати данных. Я хочу подключить принтер один раз и через приложение, которое я хочу поддерживать. Теперь моя проблема связана с подключением к принтеру. Если я перешел ко второму действию, принтер отключился.

protected static final String TAG = "TAG"; private static final int REQUEST_CONNECT_DEVICE = 1; private static final int REQUEST_ENABLE_BT = 2; Button mScan, mPrint, mDisc; BluetoothAdapter mBluetoothAdapter; private UUID applicationUUID = UUID .fromString("00001101-0000-1000-8000-00805F9B34FB"); private ProgressDialog mBluetoothConnectProgressDialog; private BluetoothSocket mBluetoothSocket; BluetoothDevice mBluetoothDevice; @Override public void onCreate(Bundle mSavedInstanceState) { super.onCreate(mSavedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); mScan = (Button) findViewById(R.id.Scan); mScan.setOnClickListener(new View.OnClickListener() { public void onClick(View mView) { mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter == null) { Toast.makeText(PrinterActivity.this, "Message1", 2000).show(); } else { if (!mBluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } else { ListPairedDevices(); Intent connectIntent = new Intent(PrinterActivity.this, DeviceListActivity.class); startActivityForResult(connectIntent, REQUEST_CONNECT_DEVICE); } } } }); mPrint = (Button) findViewById(R.id.mPrint); mPrint.setOnClickListener(new View.OnClickListener() { public void onClick(View mView) { Thread t = new Thread() { public void run() { try { OutputStream os = mBluetoothSocket .getOutputStream(); String BILL = ""; BILL = "\nInvoice No: ABCDEF28060000005" + " " + "04-08-2011\n"; BILL = BILL + "-----------------------------------------"; BILL = BILL + "\n\n"; BILL = BILL + "Total Qty:" + " " + "2.0\n"; BILL = BILL + "Total Value:" + " " + "17625.0\n"; BILL = BILL + "-----------------------------------------\n"; os.write(BILL.getBytes()); //This is printer specific code you can comment ==== > Start // Setting height int gs = 49; os.write(intToByteArray(gs)); int h = 104; os.write(intToByteArray(h)); int n = 262; os.write(intToByteArray(n)); // Setting Width int gs_width = 49; os.write(intToByteArray(gs_width)); int w = 104; os.write(intToByteArray(w)); int n_width = 2 ; os.write(intToByteArray(n_width)); /* // Print BarCode int gs1 = 29; os.write(intToByteArray(gs1)); int k = 107; os.write(intToByteArray(k)); int m = 73; os.write(intToByteArray(m)); String barCodeVal = "ASDFC028060000005";// "HELLO12345678912345012"; System.out.println("Barcode Length : " + barCodeVal.length()); int n1 = barCodeVal.length(); os.write(intToByteArray(n1)); for (int i = 0; i < barCodeVal.length(); i++) { os.write((barCodeVal.charAt(i) + "").getBytes()); } *///printer specific code you can comment ==== > End } catch (Exception e) { Log.e("Main", "Exe ", e); } } }; t.start(); } }); mDisc = (Button) findViewById(R.id.dis); mDisc.setOnClickListener(new View.OnClickListener() { public void onClick(View mView) { if (mBluetoothAdapter != null) mBluetoothAdapter.disable(); } }); }// onCreate @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); try { if (mBluetoothSocket != null) mBluetoothSocket.close(); } catch (Exception e) { Log.e("Tag", "Exe ", e); } } @Override public void onBackPressed() { try { if (mBluetoothSocket != null) mBluetoothSocket.close(); } catch (Exception e) { Log.e("Tag", "Exe ", e); } setResult(RESULT_CANCELED); finish(); } public void onActivityResult(int mRequestCode, int mResultCode, Intent mDataIntent) { super.onActivityResult(mRequestCode, mResultCode, mDataIntent); switch (mRequestCode) { case REQUEST_CONNECT_DEVICE: if (mResultCode == Activity.RESULT_OK) { Bundle mExtra = mDataIntent.getExtras(); String mDeviceAddress = mExtra.getString("DeviceAddress"); Log.v(TAG, "Coming incoming address " + mDeviceAddress); mBluetoothDevice = mBluetoothAdapter .getRemoteDevice(mDeviceAddress); mBluetoothConnectProgressDialog = ProgressDialog.show(this, "Connecting...", mBluetoothDevice.getName() + " : " + mBluetoothDevice.getAddress(), true, false); Thread mBlutoothConnectThread = new Thread(this); mBlutoothConnectThread.start(); // pairToDevice(mBluetoothDevice); This method is replaced by // progress dialog with thread } break; case REQUEST_ENABLE_BT: if (mResultCode == Activity.RESULT_OK) { ListPairedDevices(); Intent connectIntent = new Intent(PrinterActivity.this, DeviceListActivity.class); startActivityForResult(connectIntent, REQUEST_CONNECT_DEVICE); } else { Toast.makeText(PrinterActivity.this, "Message", 2000).show(); } break; } } private void ListPairedDevices() { Set<BluetoothDevice> mPairedDevices = mBluetoothAdapter .getBondedDevices(); if (mPairedDevices.size() > 0) { for (BluetoothDevice mDevice : mPairedDevices) { Log.v(TAG, "PairedDevices: " + mDevice.getName() + " " + mDevice.getAddress()); } } } public void run() { try { mBluetoothSocket = mBluetoothDevice .createRfcommSocketToServiceRecord(applicationUUID); mBluetoothAdapter.cancelDiscovery(); mBluetoothSocket.connect(); mHandler.sendEmptyMessage(0); } catch (IOException eConnectException) { Log.d(TAG, "CouldNotConnectToSocket", eConnectException); closeSocket(mBluetoothSocket); return; } } private void closeSocket(BluetoothSocket nOpenSocket) { try { nOpenSocket.close(); Log.d(TAG, "SocketClosed"); } catch (IOException ex) { Log.d(TAG, "CouldNotCloseSocket"); } } private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { mBluetoothConnectProgressDialog.dismiss(); Toast.makeText(PrinterActivity.this, "DeviceConnected", 5000).show(); } }; public static byte intToByteArray(int value) { byte[] b = ByteBuffer.allocate(4).putInt(value).array(); for (int k = 0; k < b.length; k++) { System.out.println("Selva [" + k + "] = " + "0x" + UnicodeFormatter.byteToHex(b[k])); } return b[3]; } public byte[] sel(int val) { ByteBuffer buffer = ByteBuffer.allocate(2); buffer.putInt(val); buffer.flip(); return buffer.array(); } 

Просто переместите соединение Bluetooth с Сервисом.

Intereting Posts
Не удалось проверить приложение после обновления до Lollipop Измените сторону, которую текст появится на радиокнопке Как получить функции устройства Android с помощью диспетчера пакетов Рекомендации для разработчика C # – относительно плавного перехода на Android? Сделать телефонные звонки в Adobe AIR на Android Как остановить перенос adb вперед? Как Whatsapp, Viber, как приложение, поддерживает отслеживание мобильных пользователей? Цвет TextView отображается как белый на реальном устройстве с помощью ConstraintLayout Получить список всех таблиц в базе данных Firebase onDataChange не вызывает открытие приложения через некоторое время Не удается получить полное качество изображения из строки base64 Android AudioRecord заставляет другой поток использовать источник аудиосигнала MIC Часть фрагмента внутри ViewPager, которая отключается внизу экрана (Android) Android – Почему используется onSaveInsanceState () для сохранения неотображаемого объекта bitmap? Исключение – не удалось разрешить атрибут по индексу 6: TypedValue