【问题标题】:implementing addDefaultNetworkActiveListener in Delphi在 Delphi 中实现 addDefaultNetworkActiveListener
【发布时间】:2017-08-21 15:44:32
【问题描述】:

使用here 提到的解决方案,我能够得到网络的状态。但是我还需要在状态更改时实现事件。我知道我必须使用addDefaultNetworkActiveListener 程序,但我在使用OnNetworkActiveListener 的界面时遇到了问题。有谁知道OnNetworkActiveListener 的界面是什么样的吗?

谢谢 山姆

【问题讨论】:

标签: android delphi c++builder delphi-10.2-tokyo c++builder-10.2-tokyo


【解决方案1】:

你需要构建这样的东西:

uses
  Androidapi.JNIBridge, Androidapi.JNI.Net;

type
  TNetworkActiveListener = class(TJavaLocal, JConnectivityManager_OnNetworkActiveListener)
  public
    procedure onNetworkActive; cdecl;
  end;

然后声明一个变量:

  FNetworkActiveListener: TNetworkActiveListener;

创建并添加它:

  FNetworkActiveListener := TNetworkActiveListener.Create;
  // Use the code from the other answer for GetConnectivityManager
  GetConnectivityManager.addDefaultNetworkActiveListener(FNetworkActiveListener);

【讨论】:

  • FNetworkActiveListener 应该声明为 JConnectivityManager_OnNetworkActiveListener,因为这是 addDefaultNetworkActiveListener() 所期望的。就像在 Win32 中一样,您不应该混合使用对象引用和接口引用(即使引用计数问题在移动设备中不是问题)。
  • @RemyLebeau 并不是说​​这不是问题,但是您可能希望报告 EMBT 在 RTL/FMX 单元中执行相同操作的所有实例
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 2012-12-06
  • 2013-04-19
  • 1970-01-01
  • 2011-01-23
相关资源
最近更新 更多