Служба печати Delphi connect через AIDL - PullRequest
0 голосов
/ 15 октября 2019

Я хочу использовать этот код Android в Delphi:

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

ServiceConnection serviceConnection = new ServiceConnection()
{
    @Override
    public void onServiceConnected(ComponentName name, IBinder service)
    {
        ExtPrinterService interface = ExtPrinterService.Stub.asInterface(service);
    }

    @Override
    public void onServiceDisconnected(ComponentName name)
    {
    }
};

Использовать объект интерфейса для реализации собственной задачи печати

interface.printText(“123456\n”);

Отменить привязку службы после завершения использования

unbindService(serviceConnection);

1 Ответ

0 голосов
/ 15 октября 2019

Вот мой первый удар в этом. У меня нет возможности проверить это. У меня также нет способа доступа к ExtPrinterService. Это, очевидно, другое дело, возможно, декларация манифеста и импорт библиотеки. По крайней мере, вы можете видеть, что часть кода Java транслируется в Delphi простым способом, как только вы поймете, как работать с интерфейсами.

uses
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  Androidapi.Helpers,
  Androidapi.JNIBridge,
  Androidapi.JNI.App,
  Androidapi.JNI.Os

procedure TTabbedForm.FormCreate(Sender: TObject);
var
  Intent: JIntent;
  ServiceConnection: JServiceConnection;
begin

  Intent := TJIntent.Create;
  Intent.setPackage(StringtoJString('com.sunmi.extprinterservice'));
  Intent.setAction(StringtoJString('com.sunmi.extprinterservice'));

  ServiceConnection := TJServiceConnection.Create;
  ServiceConnection.onServiceConnected := OnServiceConnected;
  ServiceConnection.onServiceDisconnected := OnServiceDisconnected;
  SharedActivityContext.bindService(Intent, ServiceConnection, TJContext.JavaClass.BIND_AUTO_CREATE);

end;

procedure TTabbedForm.OnServiceConnected(name: JComponentName; Binder: JIBinder);
begin
  //
end;

procedure TTabbedForm.OnServiceDisconnected(name: JComponentName);
begin
  //
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...