Мне нужна помощь в подключении принтера Bluetooth TM-M10 к моему приложению android. Я могу подключиться к принтеру и успешно распечатать данные. Но он печатает только один раз и в следующий раз дает сообщение ERR_CONNECT Поделиться своим кодом ниже.
if(!initializeObject()){
Toast.makeText(mContext,"Unable to initialize printer",Toast.LENGTH_LONG).show();
}
if (!createPrintBillData()) {
Toast.makeText(mContext,"Unable to create Receipt",Toast.LENGTH_LONG).show();
finalizeObject();
}
if (!printData()) {
Toast.makeText(mContext,"Error in printing",Toast.LENGTH_LONG).show();
finalizeObject();
}
Мои дальнейшие функции подробно:
private boolean initializeObject() {
try {
mPrinter = new Printer(Printer.TM_M10, Printer.MODEL_ANK, mContext);
}
catch (Exception e) {
Log.e("Printer", e.toString());
return false;
}
mPrinter.setReceiveEventListener(this);
return true;
}
private boolean createPrintBillData() {
if (mPrinter == null) {
Log.d(TAG, "createReceiptData: mprinter is null");
return false;
}
try {
mPrinter.clearCommandBuffer();
String method = "";
mPrinter.addPageBegin();
mPrinter.addPagePosition(0, 255);
mPrinter.addPageArea(0,0,combined.getWidth(),combined.getHeight()+20);
mPrinter.addTextAlign(Printer.ALIGN_CENTER);
mPrinter.addImage(combined, 0, 0, combined.getWidth(), combined.getHeight(),
Builder.COLOR_1,
Builder.MODE_MONO,
Builder.HALFTONE_DITHER,
Builder.PARAM_DEFAULT,
Builder.COMPRESS_DEFLATE);
method = "addCut";
mPrinter.addPageEnd();
mPrinter.addCut(Printer.CUT_FEED);
if(istracking){
mPrinter.addPageBegin();
mPrinter.addPagePosition(0, 255);
mPrinter.addPageArea(0,0,combined.getWidth(),combined.getHeight()+20);
mPrinter.addTextAlign(Printer.ALIGN_CENTER);
mPrinter.addFeedLine(2);
mPrinter.addImage(tracking_slip, 0, 0, tracking_slip.getWidth(), tracking_slip.getHeight(),
Builder.COLOR_1,
Builder.MODE_MONO,
Builder.HALFTONE_DITHER,
Builder.PARAM_DEFAULT,
Builder.COMPRESS_DEFLATE);
method = "addCut";
mPrinter.addPageEnd();
mPrinter.addCut(Printer.CUT_FEED);
}
return true;
}
catch (Exception e) {
//ShowMsg.showException(e, method, mContext);
Log.d(TAG, "createReceiptData: "+e.getMessage());
return false;
}
}
private boolean printData() {
if (mPrinter == null) {
Log.d(TAG, "mprinter is null in printdata");
return false;
}
if (!connectPrinter()) {
Log.d(TAG, "printer not connected");
return false;
}
PrinterStatusInfo status = mPrinter.getStatus();
try {
mPrinter.sendData(Printer.PARAM_DEFAULT);
}
catch (Exception e) {
Log.e("Printer", e.getMessage());
try {
mPrinter.clearCommandBuffer();
mPrinter = null;
}
catch (Exception ex) {
// Do nothing
mPrinter.clearCommandBuffer();
mPrinter = null;
}
return false;
}
if(mPrinter != null){
try{
mPrinter.clearCommandBuffer();
mPrinter = null;
}catch(Exception e){
mPrinter = null;
}
}
return true;
}
Поскольку я пытаюсь снова напечатать, я инициализирую принтер, а затем создаю данные для orint и печатать данные каждый раз. В соответствии с журналами ошибка приходит в функцию connectPrinter при попытке подключения дважды. По некоторым причинам это не подключение. Пожалуйста помоги!! Заранее спасибо.