Delphi 10中实现Android的广播接收器


本文整理自网络,侵删。

 
这次,这是在Delphi 10 Seattle中实现广播接收器的一种方法。
这比您想像的要容易。

创建一个类以接收通知。

uses
  Androidapi.JNIBridge,
  Androidapi.JNI.Embarcadero,
  Androidapi.JNI.GraphicsContentViewText;

type
  TMyReceiver = class(TJavaLocal, JFMXBroadcastReceiverListener)
  public
    constructor Create;
    procedure onReceive(context: JContext; intent: JIntent); cdecl;
  end;

uses 
  Androidapi.Helpers,
  Androidapi.JNI.JavaTypes;

{ TMyReceiver }

constructor TMyReceiver.Create;
begin
  inherited;
end;

procedure TMyReceiver.onReceive(context: JContext; intent: JIntent);
begin
  Log.d('Broadcast Received = ' + JStringToString(intent.getAction));
end;
设置为在表单的OnCreate事件中接收通知,并在OnDestroy事件中释放通知。

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { private 宣言 }
    FMyListener: TMyReceiver;
    FBroadcastReceiver: JFMXBroadcastReceiver;
  public
    { public 宣言 }
  end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Filter: JIntentFilter;
begin
  FMyListener := TMyReceiver.Create;
  FBroadcastReceiver := TJFMXBroadcastReceiver.JavaClass.init(FMyListener);

  Filter := TJIntentFilter.JavaClass.init;
  Filter.addAction(TJIntent.JavaClass.ACTION_SCREEN_OFF);
  Filter.addAction(TJIntent.JavaClass.ACTION_SCREEN_ON);
  TAndroidHelper.context.getApplicationContext.registerReceiver
    (FBroadcastReceiver, Filter);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  TAndroidHelper.context.getApplicationContext.unregisterReceiver
    (FBroadcastReceiver);
end;
以上是完成。

当执行该应用程序并打开/关闭屏幕时,将在日志中输出以下内容。

FMX: BroadcastSample: Broadcast Received = android.intent.action.SCREEN_OFF
FMX: BroadcastSample: Broadcast Received = android.intent.action.SCREEN_ON

相关阅读 >>

Delphi bmp 转换jpg

Delphi 10.3 调试程序时出错:unable to create process:请求的操作需要提升

Delphi 横竖屏代码控制

Delphi 查看指定进程占用端口

Delphi中用tlistview显示数据库数据

Delphi中强制idhttp使用http1.1

Delphi中嵌入汇编检测是否在虚拟机里运行

Delphi获取flash文件的影片时长,原始尺寸,帧数等信息

Delphi10.2.3实现http异步下载

Delphi ioutils 获取当前目录下所有的文件/文件夹

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...