Commit 3e2f9301c40027b886e3d41e45c1de3fe00869e1
1 parent
e4eb73bf
畅游通标准:修复打印数据为空时报错
Showing
1 changed file
with
136 additions
and
124 deletions
src/android_serialport_api/print_tool/MobilePrintTool.java
| ... | ... | @@ -516,130 +516,142 @@ public class MobilePrintTool extends Activity { |
| 516 | 516 | } |
| 517 | 517 | } |
| 518 | 518 | |
| 519 | - // 蓝牙连接等待弹框 | |
| 520 | - private ProgressDialog dialog = null; | |
| 521 | - // 连接的设备的名称 | |
| 522 | - private String mConnectedDeviceName = null; | |
| 523 | - // 更新标题栏右边状态和读写状态的Handler | |
| 524 | - @SuppressLint("HandlerLeak") | |
| 525 | - private final Handler mHandler = new Handler() { | |
| 526 | - @Override | |
| 527 | - public void handleMessage(Message msg) { | |
| 528 | - switch (msg.what) { | |
| 529 | - case BluetoothService.MESSAGE_STATE_CHANGE: | |
| 530 | - switch (msg.arg1) { | |
| 531 | - case BluetoothService.STATE_CONNECTED: | |
| 532 | - MyApp.getInstance().setBluConnection(true); | |
| 533 | - if (!isprint) { | |
| 534 | - isprint = true; | |
| 535 | - isprint2 = true; | |
| 536 | - } | |
| 537 | - print(info); | |
| 538 | - if (dialog != null) { | |
| 539 | - dialog.dismiss(); | |
| 540 | - dialog = null; | |
| 541 | - } | |
| 542 | - break; | |
| 543 | - case BluetoothService.STATE_CONNECTING: | |
| 544 | - if (dialog == null) { | |
| 545 | - // 显示ProgressDialog | |
| 546 | - dialog = new ProgressDialog(MobilePrintTool.this); | |
| 547 | - dialog.setMessage("连接打印机中..."); | |
| 548 | - dialog.setCanceledOnTouchOutside(true); | |
| 549 | - dialog.setCancelable(true); | |
| 550 | - if (type == DeviceType.HANDSET.getValue()) { | |
| 551 | - dialog.getWindow() | |
| 552 | - .setType( | |
| 553 | - WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); | |
| 554 | - } | |
| 555 | - try { | |
| 556 | - dialog.show(); | |
| 557 | - } catch (Exception e) { | |
| 558 | - e.printStackTrace(); | |
| 559 | - } | |
| 560 | - } else { | |
| 561 | - dialog.setMessage("连接打印机中..."); | |
| 562 | - } | |
| 563 | - break; | |
| 564 | - case BluetoothService.STATE_NONE: | |
| 565 | - break; | |
| 566 | - case BluetoothService.STATE_LISTEN: | |
| 567 | - // MyApp.getInstance().setBluConnection(false); | |
| 568 | - if (dialog != null) { | |
| 569 | - dialog.dismiss(); | |
| 570 | - dialog = null; | |
| 571 | - } | |
| 572 | - break; | |
| 573 | - case BluetoothService.STATE_FAILL: | |
| 574 | - if (dialog != null) { | |
| 575 | - dialog.dismiss(); | |
| 576 | - dialog = null; | |
| 577 | - } | |
| 578 | - finish(); | |
| 579 | - break; | |
| 580 | - } | |
| 581 | - break; | |
| 582 | - case BluetoothService.STATE_FAILL: | |
| 583 | - if (dialog != null) { | |
| 584 | - dialog.dismiss(); | |
| 585 | - dialog = null; | |
| 586 | - } | |
| 587 | - finish(); | |
| 588 | - break; | |
| 589 | - case BluetoothService.MESSAGE_WRITE: | |
| 590 | - break; | |
| 591 | - case BluetoothService.MESSAGE_READ: | |
| 592 | - break; | |
| 593 | - case BluetoothService.MESSAGE_DEVICE_NAME: | |
| 594 | - // 保存连接设备的名字 | |
| 595 | - mConnectedDeviceName = msg.getData().getString( | |
| 596 | - BluetoothService.DEVICE_NAME); | |
| 597 | - if (type != null && type == DeviceType.HANDSET.getValue()) { | |
| 598 | - MToast.makeText(MobilePrintTool.this, | |
| 599 | - "连接到" + mConnectedDeviceName, MToast.LENGTH_SHORT) | |
| 600 | - .show(); | |
| 601 | - } else { | |
| 602 | - Toast.makeText(MobilePrintTool.this, | |
| 603 | - "连接到" + mConnectedDeviceName, Toast.LENGTH_SHORT) | |
| 604 | - .show(); | |
| 605 | - } | |
| 606 | - if (!isprint) { | |
| 607 | - isprint = true; | |
| 608 | - isprint2 = true; | |
| 609 | - } | |
| 610 | - print(info); | |
| 611 | - break; | |
| 612 | - case BluetoothService.MESSAGE_TOAST: | |
| 613 | - if (!msg.getData().getBoolean("sucess", false)) { | |
| 614 | - finish(); | |
| 615 | - return; | |
| 616 | - } | |
| 617 | - if (Thread.currentThread() != Looper.getMainLooper() | |
| 618 | - .getThread()) { | |
| 619 | - Looper.prepare(); | |
| 620 | - } | |
| 621 | - String info = msg.getData().getString(BluetoothService.TOAST); | |
| 622 | - if (info != null && !info.equals("")) { | |
| 623 | - if (type != null && type == DeviceType.HANDSET.getValue()) { | |
| 624 | - MToast.makeText( | |
| 625 | - MobilePrintTool.this, | |
| 626 | - msg.getData().getString(BluetoothService.TOAST), | |
| 627 | - MToast.LENGTH_LONG).show(); | |
| 628 | - } else { | |
| 629 | - Toast.makeText( | |
| 630 | - MobilePrintTool.this, | |
| 631 | - msg.getData().getString(BluetoothService.TOAST), | |
| 632 | - Toast.LENGTH_LONG).show(); | |
| 633 | - } | |
| 634 | - if (Thread.currentThread() != Looper.getMainLooper() | |
| 635 | - .getThread()) { | |
| 636 | - Looper.loop(); | |
| 637 | - } | |
| 638 | - } | |
| 639 | - break; | |
| 640 | - } | |
| 641 | - } | |
| 642 | - }; | |
| 519 | + // 蓝牙连接等待弹框 | |
| 520 | + private ProgressDialog dialog = null; | |
| 521 | + // 连接的设备的名称 | |
| 522 | + private String mConnectedDeviceName = null; | |
| 523 | + // 更新标题栏右边状态和读写状态的Handler | |
| 524 | + @SuppressLint("HandlerLeak") | |
| 525 | + private final Handler mHandler = new Handler() { | |
| 526 | + @Override | |
| 527 | + public void handleMessage(Message msg) { | |
| 528 | + switch (msg.what) { | |
| 529 | + case BluetoothService.MESSAGE_STATE_CHANGE: | |
| 530 | + switch (msg.arg1) { | |
| 531 | + case BluetoothService.STATE_CONNECTED: | |
| 532 | + MyApp.getInstance().setBluConnection(true); | |
| 533 | + if (!isprint) { | |
| 534 | + isprint = true; | |
| 535 | + isprint2 = true; | |
| 536 | + } | |
| 537 | + if (!TextUtils.isEmpty(info)) { | |
| 538 | + print(info); | |
| 539 | + } else { | |
| 540 | + Toast.makeText(MobilePrintTool.this, | |
| 541 | + "没有可打印数据!", Toast.LENGTH_SHORT) | |
| 542 | + .show(); | |
| 543 | + } | |
| 544 | + if (dialog != null) { | |
| 545 | + dialog.dismiss(); | |
| 546 | + dialog = null; | |
| 547 | + } | |
| 548 | + break; | |
| 549 | + case BluetoothService.STATE_CONNECTING: | |
| 550 | + if (dialog == null) { | |
| 551 | + // 显示ProgressDialog | |
| 552 | + dialog = new ProgressDialog(MobilePrintTool.this); | |
| 553 | + dialog.setMessage("连接打印机中..."); | |
| 554 | + dialog.setCanceledOnTouchOutside(true); | |
| 555 | + dialog.setCancelable(true); | |
| 556 | + if (type == DeviceType.HANDSET.getValue()) { | |
| 557 | + dialog.getWindow() | |
| 558 | + .setType( | |
| 559 | + WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); | |
| 560 | + } | |
| 561 | + try { | |
| 562 | + dialog.show(); | |
| 563 | + } catch (Exception e) { | |
| 564 | + e.printStackTrace(); | |
| 565 | + } | |
| 566 | + } else { | |
| 567 | + dialog.setMessage("连接打印机中..."); | |
| 568 | + } | |
| 569 | + break; | |
| 570 | + case BluetoothService.STATE_NONE: | |
| 571 | + break; | |
| 572 | + case BluetoothService.STATE_LISTEN: | |
| 573 | + // MyApp.getInstance().setBluConnection(false); | |
| 574 | + if (dialog != null) { | |
| 575 | + dialog.dismiss(); | |
| 576 | + dialog = null; | |
| 577 | + } | |
| 578 | + break; | |
| 579 | + case BluetoothService.STATE_FAILL: | |
| 580 | + if (dialog != null) { | |
| 581 | + dialog.dismiss(); | |
| 582 | + dialog = null; | |
| 583 | + } | |
| 584 | + finish(); | |
| 585 | + break; | |
| 586 | + } | |
| 587 | + break; | |
| 588 | + case BluetoothService.STATE_FAILL: | |
| 589 | + if (dialog != null) { | |
| 590 | + dialog.dismiss(); | |
| 591 | + dialog = null; | |
| 592 | + } | |
| 593 | + finish(); | |
| 594 | + break; | |
| 595 | + case BluetoothService.MESSAGE_WRITE: | |
| 596 | + break; | |
| 597 | + case BluetoothService.MESSAGE_READ: | |
| 598 | + break; | |
| 599 | + case BluetoothService.MESSAGE_DEVICE_NAME: | |
| 600 | + // 保存连接设备的名字 | |
| 601 | + mConnectedDeviceName = msg.getData().getString( | |
| 602 | + BluetoothService.DEVICE_NAME); | |
| 603 | + if (type != null && type == DeviceType.HANDSET.getValue()) { | |
| 604 | + MToast.makeText(MobilePrintTool.this, | |
| 605 | + "连接到" + mConnectedDeviceName, MToast.LENGTH_SHORT) | |
| 606 | + .show(); | |
| 607 | + } else { | |
| 608 | + Toast.makeText(MobilePrintTool.this, | |
| 609 | + "连接到" + mConnectedDeviceName, Toast.LENGTH_SHORT) | |
| 610 | + .show(); | |
| 611 | + } | |
| 612 | + if (!isprint) { | |
| 613 | + isprint = true; | |
| 614 | + isprint2 = true; | |
| 615 | + } | |
| 616 | + if (!TextUtils.isEmpty(info)) { | |
| 617 | + print(info); | |
| 618 | + } else { | |
| 619 | + Toast.makeText(MobilePrintTool.this, | |
| 620 | + "没有可打印数据!", Toast.LENGTH_SHORT) | |
| 621 | + .show(); | |
| 622 | + } | |
| 623 | + break; | |
| 624 | + case BluetoothService.MESSAGE_TOAST: | |
| 625 | + if (!msg.getData().getBoolean("sucess", false)) { | |
| 626 | + finish(); | |
| 627 | + return; | |
| 628 | + } | |
| 629 | + if (Thread.currentThread() != Looper.getMainLooper() | |
| 630 | + .getThread()) { | |
| 631 | + Looper.prepare(); | |
| 632 | + } | |
| 633 | + String info = msg.getData().getString(BluetoothService.TOAST); | |
| 634 | + if (info != null && !info.equals("")) { | |
| 635 | + if (type != null && type == DeviceType.HANDSET.getValue()) { | |
| 636 | + MToast.makeText( | |
| 637 | + MobilePrintTool.this, | |
| 638 | + msg.getData().getString(BluetoothService.TOAST), | |
| 639 | + MToast.LENGTH_LONG).show(); | |
| 640 | + } else { | |
| 641 | + Toast.makeText( | |
| 642 | + MobilePrintTool.this, | |
| 643 | + msg.getData().getString(BluetoothService.TOAST), | |
| 644 | + Toast.LENGTH_LONG).show(); | |
| 645 | + } | |
| 646 | + if (Thread.currentThread() != Looper.getMainLooper() | |
| 647 | + .getThread()) { | |
| 648 | + Looper.loop(); | |
| 649 | + } | |
| 650 | + } | |
| 651 | + break; | |
| 652 | + } | |
| 653 | + } | |
| 654 | + }; | |
| 643 | 655 | |
| 644 | 656 | @Override |
| 645 | 657 | protected void onDestroy() { | ... | ... |