Я использую устройство Sunmi V1s и хочу показать диалог, когда принтер закончит печать всей квитанции. Теперь я могу получить сообщение, как только запрос будет обработан, но я не могу получить сообщение в тот момент, когда принтер выполнил всю печать.
Я использовал демонстрационное приложение для создания обратного вызова, которое затем отправляю в класс AidlUtil.
TextActivity
final PrinterCallback printerCallback = new PrinterCallback() {
@Override
public void onReturnString(String result) {
System.out.println("Finished: " + result); //never prints out, expecting this line to work when Sunmi printer finishes printing
}
@Override
public void onRunResult(boolean success) {
System.out.println("Success: " + success); //prints out immediately after query is sent
}
@Override
public void onRaiseException(String msg) {
}
};
AidlUtil.getInstance().printText(content, size, isBold, isUnderLine, printerCallback);
Класс AidlUtil:
public void printText(String content, float size, boolean isBold, boolean isUnderLine, PrinterCallback printerCallback) {
if (woyouService == null) {
Toast.makeText(context, R.string.toast_2, Toast.LENGTH_LONG).show();
return;
}
try {
if (isBold) {
woyouService.sendRAWData(ESCUtil.boldOn(), null);
} else {
woyouService.sendRAWData(ESCUtil.boldOff(), null);
}
if (isUnderLine) {
woyouService.sendRAWData(ESCUtil.underlineWithOneDotWidthOn(), null);
} else {
woyouService.sendRAWData(ESCUtil.underlineOff(), null);
}
woyouService.printTextWithFont(content, null, size, generateCB(printerCallback)); //generating ICallback and sending it to printTextWithFont method
woyouService.lineWrap(3, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
Метод generateCB:
public ICallback generateCB(final PrinterCallback printerCallback){
return new ICallback.Stub(){
@Override
public void onRunResult(boolean isSuccess) throws RemoteException {
printerCallback.onRunResult(isSuccess);
}
@Override
public void onReturnString(String result) throws RemoteException {
printerCallback.onReturnString(result);
}
@Override
public void onRaiseException(int code, String msg) throws RemoteException {
printerCallback.onRaiseException(msg);
}
@Override
public void onPrintResult(int code, String msg) throws RemoteException {
}
};
}
Что может быть проблемой? Я ожидаю получить метод System.out.println onReturnString, но метод не вызывается в любое время
Я использую устройство Sunmi V1s и хочу показать диалог, когда принтер закончит печать всей квитанции. Теперь я могу получить сообщение, как только запрос будет обработан, но я не могу получить сообщение в тот момент, когда принтер выполнил всю печать.
Я использовал демонстрационное приложение для создания обратного вызова, которое затем отправляю в класс AidlUtil.
TextActivity
final PrinterCallback printerCallback = new PrinterCallback() {
@Override
public void onReturnString(String result) {
System.out.println("Finished: " + result); //never prints out, expecting this line to work when Sunmi printer finishes printing
}
@Override
public void onRunResult(boolean success) {
System.out.println("Success: " + success); //prints out immediately after query is sent
}
@Override
public void onRaiseException(String msg) {
}
};
AidlUtil.getInstance().printText(content, size, isBold, isUnderLine, printerCallback);
Класс AidlUtil:
public void printText(String content, float size, boolean isBold, boolean isUnderLine, PrinterCallback printerCallback) {
if (woyouService == null) {
Toast.makeText(context, R.string.toast_2, Toast.LENGTH_LONG).show();
return;
}
try {
if (isBold) {
woyouService.sendRAWData(ESCUtil.boldOn(), null);
} else {
woyouService.sendRAWData(ESCUtil.boldOff(), null);
}
if (isUnderLine) {
woyouService.sendRAWData(ESCUtil.underlineWithOneDotWidthOn(), null);
} else {
woyouService.sendRAWData(ESCUtil.underlineOff(), null);
}
woyouService.printTextWithFont(content, null, size, generateCB(printerCallback)); //generating ICallback and sending it to printTextWithFont method
woyouService.lineWrap(3, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
Метод generateCB:
public ICallback generateCB(final PrinterCallback printerCallback){
return new ICallback.Stub(){
@Override
public void onRunResult(boolean isSuccess) throws RemoteException {
printerCallback.onRunResult(isSuccess);
}
@Override
public void onReturnString(String result) throws RemoteException {
printerCallback.onReturnString(result);
}
@Override
public void onRaiseException(int code, String msg) throws RemoteException {
printerCallback.onRaiseException(msg);
}
@Override
public void onPrintResult(int code, String msg) throws RemoteException {
}
};
}
Что может быть проблемой? Я ожидаю получить метод System.out.println onReturnString, но метод не вызывается в любое время
00Java, андроид, вызов,