将 Java .class 文件传递​​给 Delphi 构造函数

Pass Java .class file to Delphi Constructor

我正在使用 JNI 来访问 Delphi 10.2 Tokyo 中的 Android 函数。我需要传递一个 .class 类型作为 Delphi 函数构造函数的参数。

原来的Java方法是这样的:

private Intent getServiceIntent() {
    return new Intent(this, ToyVpnService.class);
}

来自 Android 构造函数的 Intent 文档:

Intent(Context packageContext, Class<?> cls)

Create an intent for a specific component.

我必须使用这个构造函数,我无法更改它。

我需要将其翻译成 Delphi,但我一直坚持传递 .class 类型。 现在,我的代码看起来像这样:

function TForm1.GetServiceIntent: JIntent;
begin
  result := TJIntent.JavaClass.init(FContext, ???);
end;

我尝试使用 Java 中的 ClassLoader,但无法访问 loadClass() 函数,因为它受到保护,因此只能打包。

我尝试使用 Class.forName,但无法从 .class 文件中指定 Path

我将 .class 文件添加为 Delphi 资源文件并通过 TResourceStream 加载它,但找不到将此输入转换为 Java 的解决方案] Class参考。

根据,我猜应该是

Intent := TJIntent.JavaClass.init(SharedActivityContext,
  TJLang_Class.JavaClass.forName(StringToJString('com.example.ToyVpnService'),
  True, SharedActivity.getClassLoader));