我正在与 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)
为特定组件创建意图。
我必须使用这个构造函数,我不能改变它。
我需要把它翻译成 Delphi,但我一直在传递.class
类型。现在,我的代码看起来像这样:
function TForm1.GetServiceIntent: JIntent;
begin
result := TJIntent.JavaClass.init(FContext, ???);
end;
我尝试使用 Java 中的 ClassLoader,但无法访问该loadClass()
函数,因为它仅受保护所以包。
我尝试使用Class.forName
,但无法Path
从.class
文件中指定。
我将该.class
文件添加为 Delphi 资源文件并通过 加载它TResourceStream
,但找不到将此输入转换为 JavaClass
引用的解决方案。