[JAVA/DELPHI/ANDROID]Erro Callback projeto android
22/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;
Desde já agradeço.
Essa dúvida foi gerada a partir de um comentário na aula [url:descricao=Introdução ao FireMonkey - O que é FireMonkey? - Vídeo 1]//www.devmedia.com.br/introducao-ao-firemonkey-o-que-e-firemonkey-video-1/38506[/url]
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;
Desde já agradeço.
Essa dúvida foi gerada a partir de um comentário na aula [url:descricao=Introdução ao FireMonkey - O que é FireMonkey? - Vídeo 1]//www.devmedia.com.br/introducao-ao-firemonkey-o-que-e-firemonkey-video-1/38506[/url]
Rodolfo Gomes
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)