Добрый день!
Выкладываю тестовый проект FMX, который позволяет достучаться до фискального ядра MSPOS.
Единственная проблема, я не могу заставить правильно работать java-интерфейс IExceptionCallBack, который создается в Delphi, передается в фискальное ядро на Андроиде и вызывается Андроидом при ошибке java-метода IFiscalCore
Вот так я описал класс, реализующий java-интерфейс IExceptionCallBack
TRTLExceptionCallback = class(TJavaLocal, JIExceptionCallback)
private
[Weak] FFiscalConnection: TFiscalServiceConnection;
FCallbackIntf: JIExceptionCallback;
public
constructor Create(const AFiscalConnection: TFiscalServiceConnection);
property CallbackIntf: JIExceptionCallback read FCallbackIntf;
procedure HandleException(i: Integer; string_: JString; i1: Integer; string_1: JString); cdecl;
function asBinder: JIBinder; cdecl;
end;
Вот так я создаю этот интерфейс
if FHandlerException = nil then
begin
FHandlerException := TRTLExceptionCallback.Create(Self);
FJExceptionCallback := FHandlerException as JIExceptionCallback; //FHandlerException.CallbackIntf;
end;
Когда фискальное ядро на Андроиде обращается к этому интерфейсу, получаем ошибку, что метод asBinder не реализован. Я не знаю как реализовать этот метод asBinder и зачем вообще он нужен, если основной метод для обработки ошибок - это метод HandleException, который по идее и должен вызываться, но вызывается asBinder.
procedure HandleException(i: Integer; string_: JString; i1: Integer; string_1: JString); cdecl;
Буду рад любой помощи, в том числе и за ответную услугу (вознаграждение)
MSPOS.7z