首页 > 其他分享 >delphi android发送与接收广播

delphi android发送与接收广播

时间:2024-07-26 10:50:39浏览次数:9  
标签:delphi TBroadcastReceiver 广播 Androidapi Receiver JNI android procedure

在Delphi中,可以使用TLocalBroadcastManager类来发送和接收广播。以下是一个示例:

发送广播:
```delphi
uses
  Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.LocalBroadcastManager;

procedure SendBroadcast(const AAction: JString);
var
  Intent: JIntent;
begin
  Intent := TJIntent.Create;
  Intent.setAction(AAction);
  TJLocalBroadcastManager.JavaClass.getInstance(TAndroidHelper.Context).sendBroadcast(Intent);
end;
```

接收广播:
```delphi
uses
  Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.LocalBroadcastManager;

type
  TBroadcastReceiver = class(TAndroidBroadcastReceiver)
  protected
    procedure onReceive(context: JContext; intent: JIntent); override;
  end;

procedure TBroadcastReceiver.onReceive(context: JContext; intent: JIntent);
var
  Action: JString;
begin
  Action := intent.getAction;
  // 处理接收到的广播
end;

procedure RegisterBroadcastReceiver;
var
  Receiver: TBroadcastReceiver;
begin
  Receiver := TBroadcastReceiver.Create;
  TJLocalBroadcastManager.JavaClass.getInstance(TAndroidHelper.Context).registerReceiver(Receiver, TJIntentFilter.JavaClass.init(StringToJString('YOUR_ACTION')));
end;

procedure UnregisterBroadcastReceiver;
var
  Receiver: TBroadcastReceiver;
begin
  Receiver := TBroadcastReceiver.Create;
  TJLocalBroadcastManager.JavaClass.getInstance(TAndroidHelper.Context).unregisterReceiver(Receiver);
end;
```

在发送广播时,使用`SendBroadcast`函数,并传入广播的Action。在接收广播时,创建一个继承自`TAndroidBroadcastReceiver`的类,并在`onReceive`方法中处理接收到的广播。然后,使用`RegisterBroadcastReceiver`函数注册广播接收器,并在`UnregisterBroadcastReceiver`函数中取消注册。请注意替换示例代码中的`YOUR_ACTION`为实际的广播Action。

希望对你有所帮助!
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/delphigbg/article/details/132488894

标签:delphi,TBroadcastReceiver,广播,Androidapi,Receiver,JNI,android,procedure
From: https://www.cnblogs.com/xionda/p/18324860

相关文章

  • Android 屏幕自适应
    介绍autosizeautosize是一个Android开源库,旨在简化适配不同屏幕尺寸和分辨率的工作。它主要解决了在不同设备上,应用界面可能因屏幕尺寸、分辨率和像素密度不同而出现的布局问题。自动适配:自动根据屏幕尺寸和分辨率调整布局大小和字体大小,减少了手动调整的工作量。支持......
  • 题解:P10043 [CCPC 2023 北京市赛] 广播
    博客使用更佳:Myblog题目传送门这道题是一个标准的dp了,只不过它要倒序来做。还是分三步。初值:初值想必都知道吧,若要求最小值,就把初值设成无穷大,\(dp_{0,i}\)和\(dp_{i,0}\)都要设成\(i\),\(dp_{0,0}\)一定要赋值成\(0\),这是本人亲自犯过的错误QwQ。状态:\(dp_{i,j}......
  • Android开发 - Canvas类与Paint画笔的绘制详解与使用
    Canvas类是什么Android中Canvas类常用于自定义View等操作中,Canvas则如同一张画布可以在上面绘制内容,然后这张画布也可以叠加其他的图层或者平移旋转等操作。Canvas对象的获取方式有两种:一种我们通过重写onDraw方法,View中重写onDraw(Canvascanvas)Canvas对象会被当做参数传递过......
  • Android开发 - Canvas中Path路径的详解与使用
    Path回顾Path类封装复合(多轮廓)几何路径由直线段、二次曲线和三次曲线组成。它可以用画布绘制:canvas.drawPath(path,paint),填充或笔划(基于绘画的样式),或者可以用于剪裁或绘制路径上的文本。Path既是路径,路径走多了就变成一种套路,只要我们会解套,那这种套路就是高速公路。路径走完形......
  • Delphi CnPack CnRs232 以16进制 串口发送消息 WriteCommData
    使用Delphi组件CnPack里面的CnRs232,以十六进制对串口发送消息 WriteCommData找了好久,尝试了N个方法,不想安装MSComm,SPComm在新版Delphi有点怪怪的,还是用cnRs232直接上代码:procedure TForm1.Button1Click(Sender: TObject);var  DataArray:array of byte; Wl......
  • Delphi Variant 判断是否为空
    VarIsEmpty和VarIsNull在Delphi中都是用于判断Variant类型变量的函数,但它们之间有着明显的区别:VarIsEmptyVarIsEmpty函数用于判断一个Variant变量是否未被初始化或显式地被设置为空状态。当一个Variant变量被声明后尚未被赋予任何值,或者通过某种方式被设置为表示空......
  • Android 10.0 Settings 加载流程
    一、系统设置首页代码路径:packages/app/Settings/1主界面加载:<!--Aliasforlauncheractivityonly,asthisbelongstoeachprofile.--><activity-aliasandroid:name="Settings"android:label="@string/settings_label_lau......
  • kotlin,Android教你最基础的ViewBinding视图绑定
    目录一.添加依赖二.在Activity中使用ViewBinding修改布局文件修改kt文件 效果三.在Fragment中使用ViewBinding修改布局文件修改kt文件效果不玩虚的,就三分钟,看完就能学会最基础的ViewBinding如何使用使用ViewBinding有什么好处呢与使用findViewById相比,视图绑......
  • Android中的usescleartexttraffic属性详解
    Android中的usescleartexttraffic属性详解usesCleartextTraffic是Android应用程序开发中的一个重要配置选项,用于控制应用程序是否允许通过不加密的HTTP协议进行网络通信。在Android应用的开发过程中,正确地配置usesCleartextTraffic对于保护用户数据安全、符合最佳......
  • Android Spingboot 实现SSE通信案例
    SSESSE(Server-SentEvents)是一种用于实现服务器主动向客户端推送数据的技术,它基于HTTP协议,利用了其长连接特性,在客户端与服务器之间建立一条持久化连接,并通过这条连接实现服务器向客户端的实时数据推送。Server-SentEvents(SSE)和Sockets都可以用于实现服务器向客户端推......