[DELPHI]Callback Android

26/05/2020

0

Tenho o seguinte fonte em Java para android:
Código:


class PrinterCallbackStub extends IPrinterCallback.Stub {


@Override
public void onSuccess() throws RemoteException {

}

@Override
public void onError(int i) throws RemoteException {

}
}


//aqui chamando a função de printer

PosDigital.getInstance().getPrinter().init();
PosDigital.getInstance().getPrinter().setGray(5);
PosDigital.getInstance().getPrinter().defineFontFormat(FontFormat.MEDIUM);
PosDigital.getInstance().getPrinter().addText(AlignMode.LEFT, "Barcode: 20");
PosDigital.getInstance().getPrinter().addText(AlignMode.LEFT, " ");
PosDigital.getInstance().getPrinter().print(new PrinterCallbackStub());




Para utlizar isso no delphi eu adicionei um .jar que a SDK do fabricante e gerei o arquivo JNI com Java2OP.

As funções que não possui calback esta funcionando, mas essa ai que é passado o PrinterCallbackStub() não estou conseguindo reproduzir.

Segue o trecho do JNI gerado :
Código:

JIPrinterCallbackClass = interface(JIInterfaceClass)
['{ABEF5590-D20B-43A1-A35B-807051A7330D}']
end;

[JavaSignature('com/getnet/posdigital/printer/IPrinterCallback')]
JIPrinterCallback = interface(JIInterface)
['{08B39C40-A389-4ED5-9E6B-DA7D6A8C7600}']
procedure onError(P1: Integer); cdecl;
procedure onSuccess; cdecl;
end;
TJIPrinterCallback = class(TJavaGenericImport<JIPrinterCallbackClass>) end;

JIPrinterCallback_StubClass = interface(JBinderClass)
['{758A2E1B-E31A-4221-BAC7-8092F224090A}']
function asInterface(P1: JIBinder): JIPrinterCallback; cdecl;
function init: JIPrinterCallback_Stub; cdecl;
end;

[JavaSignature('com/getnet/posdigital/printer/IPrinterCallback$Stub')]
JIPrinterCallback_Stub = interface(JBinder)
['{CF6E873A-2FA2-4C71-A2FA-66B27EDA1A72}']
function asBinder: JIBinder; cdecl;
function onTransact(P1: Integer; P2: JParcel; P3: JParcel; P4: Integer): Boolean; cdecl;
end;
TJIPrinterCallback_Stub = class(TJavaGenericImport<JIPrinterCallback_StubClass>) end;

JIPrinterCallback_Stub_ProxyClass = interface(JIPrinterCallbackClass)
['{D013AB01-DBD9-4CC3-AC42-CB036F080131}']
end;

[JavaSignature('com/getnet/posdigital/printer/IPrinterCallback$Stub$Proxy')]
JIPrinterCallback_Stub_Proxy = interface(JIPrinterCallback)
['{5FB7E803-D568-43F9-8F42-634E96FC5279}']
function asBinder: JIBinder; cdecl;
function getInterfaceDescriptor: JString; cdecl;
procedure onError(P1: Integer); cdecl;
procedure onSuccess; cdecl;
end;
TJIPrinterCallback_Stub_Proxy = class(TJavaGenericImport<JIPrinterCallback_Stub_ProxyClass>) end;





Como tem que ficar esse callback?

Eu tentei assim, mas esta errado:
Código:

TPrinterCallback = class(TJavaLocal,JIPrinterCallback)
procedure onError(P1: Integer); cdecl;
procedure onSuccess; cdecl;


end;

Preciso saber como montar o callback disso "IPrinterCallback.Stub"?



Desde já agradeço.

Essa dúvida foi gerada a partir de um comentário no artigo [url:descricao=Artigo Clube Delphi Edição 51 - Delphi e Java]//www.devmedia.com.br/artigo-clube-delphi-edicao-51-delphi-e-java/14157[/url]
Antonio Junior

Antonio Junior

Responder

Posts

17/08/2020

Diego

Boa tarde,

Como você conseguiu o Jar, converteu o AAR de alguma maneira? Estou me matando faz algum tempo com esse SDK da getnet para integrar junto com Delphi. Conseguiu algum progresso?
Responder

17/08/2020

Antonio Junior

Boa tarde,

Como você conseguiu o Jar, converteu o AAR de alguma maneira? Estou me matando faz algum tempo com esse SDK da getnet para integrar junto com Delphi. Conseguiu algum progresso?


O Sdk esta no AAR que a getNet disponibiliza. Para sacar a sdk, voce muda a extenção do AAR para rar. Depois descompact. La dento vai ter um arquivo .jar, esse arquivo é a sdk. Adicione ele na libs do seu projeto delphi. Depois use o java2op para gerar o JNI para que vc possa usar.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar