Einzelnen Beitrag anzeigen

bcvs
Online

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#1

Android: Klasse aus .jar benutzen

  Alt 26. Jul 2024, 12:28
Hallo zusammen, ich habe muss .jar-Datei in meine App einbinden. Zunächst habe ich dieses Bridge-File erzeugt und die .jar als Bibliothek eingebunden, wie hier beschrieben:
http://docwiki.embarcadero.com/RADSt...o_Android_Apps

So weit, so gut.

Jetzt geht es darum die Klassen zu verwenden. Ich will zunächst mal die function isNfcEnabled aufrufen. Die entsprechende Klasse ist in der Bridge-Datei so definiert:

Delphi-Quellcode:
  JCardlinkClass = interface(JICardlinkCallbackClass)
    ['{62BD9E24-88F0-4FD3-BD57-65479E39241E}']
    {class} function _GetINSTANCE: JCardlink; cdecl;
    {class} function getDebug: Boolean; cdecl;
    {class} function getLogLevel: JLogLevel; cdecl;
    {class} function getSmsHack: Boolean; cdecl;
    {class} function getState: JCardlinkState; cdecl;
    {class} procedure initialize(string_: JString; iCardlinkCallback: JICardlinkCallback; string_1: JString; string_2: JString); cdecl;
    {class} function isNfcEnabled(context: JContext): Boolean; cdecl;
    {class} function isNfcHardwareAvailable(context: JContext): Boolean; cdecl;
    {class} procedure requestSmsToken(string_: JString; string_1: JString; string_2: JString; string_3: JString); cdecl;
    {class} procedure setDebug(b: Boolean); cdecl;
    {class} procedure setLogLevel(logLevel: JLogLevel); cdecl;
    {class} procedure setSmsHack(b: Boolean); cdecl;
    {class} procedure shutdown; cdecl;
    {class} procedure startScan(string_: JString; activity: JActivity); cdecl;
    {class} procedure verifySmsToken(string_: JString); cdecl;
    {class} property INSTANCE: JCardlink read _GetINSTANCE;
  end;

  [JavaSignature('de/...../Cardlink')]
  JCardlink = interface(JICardlinkCallback)
    ['{46B08D27-AA20-4A0D-971E-7405E46E0787}']
    procedure onError(cardlinkError: JCardlinkError; string_: JString; cardlinkAction: JCardlinkAction); cdecl;
    procedure onPrescriptionBundles(list: JList); cdecl;
    procedure onPrescriptionTokens(string_: JString); cdecl;
    procedure onProgressUpdate(i: Integer); cdecl;
    procedure onStateChanged(cardlinkState: JCardlinkState); cdecl;
  end;
  TJCardlink = class(TJavaGenericImport<JCardlinkClass, JCardlink>) end;
Ich denke, ich muss jetzt eine Instanz von JCardlink erzeugen mit

Delphi-Quellcode:
var CardLink: JCardlink;
CardLink:=TJCardlink.JavaClass.INSTANCE;
Aber wie komme ich von da an die function isNfcEnabled? Die steckt doch in dem interface JCardlinkClass
  Mit Zitat antworten Zitat