Как на терминале Sunmi K2 я могу распечатать (на встроенном принтере) что-либо с помощью WinDev Mobile?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как на терминале Sunmi K2 я могу распечатать (на встроенном принтере) что-либо с помощью WinDev Mobile?

Сообщение Anonymous »

Я использую POS-терминал Sunmi K2 под управлением Android 7.1.2
Я разрабатываю программное обеспечение POS с WinDev для Mobile 26, у меня уже отображаются некоторые окна, теперь вопрос в том, как я могу печатать на встроенном POS-принтере?
На киоске установлено приложение для тестирования печати, оно работает нормально.
В настройках настройки принтера тоже есть, но там написано "устройство не установлено"...
В документации упоминается "интерфейс AIDL"...
И еще, там написан пример API:
Bound Service
Intent intent = new Intent();
intent.setPackage("com.sunmi.extprinterservice");
intent.setAction("com.sunmi.extprinterservice.PrinterService");
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);

Необходимо установить новую службу ServiceConnection для привязки обратного вызова
ServiceConnection serviceConnection = new ServiceConnection() {
@Override public void onServiceConnected(ComponentName name, IBinder service) {
ExtPrinterService ext = ExtPrinterService.Stub.asInterface(service);
}
@Override public void onServiceDisconnected(ComponentName name) { }
};

Используйте объект ext для реализации собственной задачи печати
ext.printText(“123456\n”);

Отвязать услугу после завершения использования
unbindService(serviceConnection);

Вопрос в том, как я могу использовать этот Java-код в WinDev Mobile??
РЕДАКТИРОВАНИЕ:
Мне удалось распечатать на принтере, но есть небольшая ошибка, поэтому иногда он не запускается сразу, поэтому возникает цикл...
import android.content.ComponentName;
import android.content.Context;
import static android.content.Context.BIND_AUTO_CREATE;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.widget.Toast;
import com.sunmi.extprinterservice.ExtPrinterService;

public static void PrintToSunmiPrinter(byte[] cmd) {

getCurrentActivity();
Context context = getApplicationContext();
ExtPrinterService ext;

ServiceConnection serviceConnection = new ServiceConnection() {
@Override public void onServiceConnected(ComponentName className, IBinder service) {
// This is called when the connection with the service has been
// established, giving us the service object we can use to
// interact with the service. Because we have bound to a explicit
// service that we know is running in our own process, we can
// cast its IBinder to a concrete class and directly access it.
try {

ExtPrinterService ext = ExtPrinterService.Stub.asInterface(service);
int ret_code;
int zz=0;

ret_code=ext.printerInit();
while(ret_code==-1){
zz++;
if (zz>100) { Toast.makeText(context, "ERROR! / "+ret_code, Toast.LENGTH_SHORT).show(); break; }
ret_code=ext.printerInit();
}

ext.sendRawData(cmd);
ext.cutPaper(1, 0);
ext.flush();
} catch(Exception ex){
Toast.makeText(getApplicationContext(), "ERROR! "+ex.getMessage(), Toast.LENGTH_SHORT).show();
}
}

@Override public void onServiceDisconnected(ComponentName className) {
// This is called when the connection with the service has been
// unexpectedly disconnected -- that is, its process crashed.
// Because it is running in our same process, we should never
// see this happen.
}
};

Intent intent = new Intent();
intent.setPackage("com.sunmi.extprinterservice");
intent.setAction("com.sunmi.extprinterservice.PrinterService");
context.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
}


Подробнее здесь: https://stackoverflow.com/questions/687 ... hing-using
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»