我需要实现这个功能:

  [JavaSignature('android/app/Activity')]
  JActivity = interface(JContextThemeWrapper)
    ...
    procedure onRequestPermissionsResult(requestCode: Integer; permissions: TJavaObjectArray<JString>; grantResults: TJavaArray<Integer>); cdecl;
    ....

但是怎么做呢?这个函数只是用来接收事件,所以我必须重写它,但我不知道怎么做。

最佳答案

要在firemonkey应用程序下面的Activity中实现回调,您必须编写一些java代码来对firemonkey自己的原生活动子类进行子类划分。
这是相当乏味和充满问题的,需要各种命令行“monkey business”,但我已经为不同的回调编写了流程,onNewIntentmy Delphi XE7 article on supporting NFC tags中(Delphi 10 Seattle使这项工作在没有Java活动子类化的情况下可行)。我还为delphi xe5编写了onActivityResult回调的过程(delphi xe6使这项工作在没有java活动子类化的情况下成为可能)。
确保按照这些文章附带的示例更新android清单模板文件,以引用新的自定义活动子类,如下所示:

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

祝你好运。这是相当混乱,使调试非常困难。

10-07 19:37
查看更多