Java delphi/firemonkey:如何在活动中实现回调?

Java delphi/firemonkey:如何在活动中实现回调?,java,android,delphi,firemonkey,Java,Android,Delphi,Firemonkey,我需要实现这个功能: [JavaSignature('android/app/Activity')] JActivity = interface(JContextThemeWrapper) ... procedure onRequestPermissionsResult(requestCode: Integer; permissions: TJavaObjectArray<JString>; grantResults: TJavaArray<Inte

我需要实现这个功能:

  [JavaSignature('android/app/Activity')]
  JActivity = interface(JContextThemeWrapper)
    ...  
    procedure onRequestPermissionsResult(requestCode: Integer; permissions: TJavaObjectArray<JString>; grantResults: TJavaArray<Integer>); cdecl;
    ....
[JavaSignature('android/app/Activity')]
JActivity=接口(JContextThemeWrapper)
...  
过程onRequestPermissionsResult(请求代码:整数;权限:TJavaObjectArray;grantResults:TJavaArray);cdecl;
....

但如何做到这一点呢?此函数仅用于接收事件,因此我必须重写它,但我不知道如何执行。

要在中实现作为FireMonkey应用程序基础的回调,您必须编写一些Java代码以子类FireMonkey自己的本机活动子类

这是一个相当乏味且充满问题的过程,需要各种命令行“monkey business”,但我已经为另一个回调编写了这个过程(Delphi 10西雅图使这项工作在没有Java活动子类的情况下可行)。我还为中的回调编写了Delphi XE5的过程(Delphi XE6使这项工作在没有Java活动子类的情况下成为可能)

请确保使用这些文章附带的示例更新您的Android清单模板文件,以引用新的自定义活动子类,如中所示:

<activity android:name="com.blong.test.NativeActivitySubclass"
          ...

你问错问题了。你的问题有误导性。在Android中实现事件函数的方法是采用已发布侦听器接口的Delphi版本,并在继承自Androidapi.JNIBridge单元中的
TJavaLocal
的Delphi类中实现。您正在询问如何在构成整个Delphi应用程序基础的
活动中实现回调。谢谢blong,您是对的,我刚刚更新了问题以使其更准确:)谢谢blong,我已经阅读了您的所有博客并观看了您的研讨会:)感谢这一点,我已经制作了自己的类。dex。例如,我知道如何子类化任何对象,比如textview,但我不知道如何子类化FMXNativeActivity,因为创建它的将是delphi,而不是我,所以它永远不会用我自己的子类创建(或者我错过了一些东西)。这一部分我在你的博客中没有很好地理解,如何用我自己的子类而不是默认的FMXNativeActivity来启动主活动(因为我想我的java代码将是无用的)好吧,如果你已经熟悉了材料和过程,那么你就有了你需要的所有信息。这两篇文章涵盖了所有必需的步骤(针对所讨论的产品版本),并附带了显示结果正常运行的示例。如果有不清楚的地方,你需要在你提出的问题或你报告的问题中更加具体。“我不知道如何将FMXNativeActivity子类化,因为创建它的将是delphi而不是我”->哦,事实上,我看到文章中没有强调的一点是,在应用程序启动时创建activity子类需要对Android清单文件进行更改。我已相应地更新了我的答案。如果您发现这一点现在回答了这个问题,请对有用的评论进行适当的升级投票,并标记适当的答案(在这里和其他最近的问题上)。谢谢blong!它现在工作得很好!!我还向emb()添加了一个功能请求,因为我认为如果所有这些都由delphi@DaveNottage,没有NFC特定的,没有。我指的是从底层活动的
onNewIntent
方法中获取Delphi中的意图,西雅图将功能添加到Delphi代码的表面,而不需要混乱的翻滚。NFC文章展示了一个这样做的例子,但同样如此——看看HTML自述文件。这类似于XE6对onActivityResult的支持(也出现在消息传递框架中)。