RAD Studio Delphi C++安卓通知服务示例


FMX.Android通知服务示例


这个Demo演示了Android应用程序使用Android服务来显示一个预定的通知。Android作为后台任务工作并在服务启动后显示通知。即使主应用程序不运行,通知仍会启动。完成任务后,服务停止。
示例位置


你可以在下边路径找到Android Notification Service示例:

描述


此示例演示如何创建和使用Android本地服务来呈现预定通知。

  • 通知服务项目由一个数据模块组成。在服务从通知应用启动后, TNotificationCenter组件创建和显示通知。
  • 通知应用程序项目启动Android服务在Android设备上显示通知。一旦该通知是由用户处理,一个消息被发送到TMemo。处理通知,应用程序使用 TNotificationCenter组件。

如何使用示例


打开工程:

  • 1、打开上述路径。
  • 2、打开示例应用程序组的项目文件:NotificationServiceDemo.groupproj

创建Android服务:

  • 1、在Project Manager选择libNotificationService.so
  • 2、右键点击Compile。
    注: 编译项目生成您需要添加到主应用程序的文件.

将Android服务添加到主应用程序:

  • 1、在Project Manager选择NotificationApp
  • 2、展开Target Platforms节点
  • 3、选择Android设备
  • 4、右键单击Android设备,然后选择Add Android Service.添加Android服务。
  • 5、选择位置 C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidNotificationServiceDemo\NotificationService.
  • 6、点击Next
    • 注:检查定位这些添加的文件:libNotificationService.so, NotificationService.jar, 和 NotificationServiceUnit.pas.
  • 7、按F9或选择Run > Run部署应用程序到Android设备

启动Android服务

  • 1、要启动服务,在通知应用程序上单击Start Service开启服务。
  • 2、在Android设备上等待预定的时间在屏幕上看到通知。
  • 3、点击通知,从主应用程序的TNotificationCenter触发 OnReceiveLocalNotification事件。
  • 4、看到消息通知收到:RAD Studio 10 Seattle in the TMemo.。

实现


通知服务
通知服务是一个android服务项目。服务的类型是本地的。
数据模块具有TNotificationCenter组件。
当服务启动数据模块OnStartCommand事件触发。启动8秒后,OnStartCommand事件调用LaunchNotification过程创建并显示通知

  1. function TNotificationServiceDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags,
  2.   StartId: Integer): Integer;
  3. begin
  4.   LaunchNotification; //调用指定过程并呈现通知
  5.   JavaService.stopSelf; // 显示通知后服务停止.
  6.   Result := TJService.JavaClass.START_STICKY; //'OnStartCommand'事件默认定义为 START_NOT_STICKY,这行代码将其设置为START_STICKY
  7. end;

注:当定义为start_sticky,当被杀掉后系统尝试重新创建服务。
通知应用
通知服务是一个多设备应用程序项目。
Start Service按钮OnClick事件处理调用TLocalServiceConnection类的StartService方法

  • 注:TLocalServiceConnection是管理连接到一个Android本地服务。辅助类
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   TLocalServiceConnection.StartService('NotificationService'); //初始化TLocalServiceConnection 变量到一个特定的服务,并启动。
  4. end;
  • :在启动服务之后,您不需要引用其他方法的服务名。

TNotification控件的OnReceiveLocalNotification事件触发一次用户在Android设备上的通知,这意味着点击通知,不驳回他。

  1. procedure TForm1.NotificationCenter1ReceiveLocalNotification(Sender: TObject; ANotification: TNotification);
  2. begin
  3.   Memo1.Lines.Add('Notification received:'); //当用户处理通知时,它会在memo上显示一条消息。
  4.   Memo1.Lines.Add(ANotification.AlertBody); //它显示了在Android服务项目上定义的通知的警报主体。
  5. end;

Uses


  • TNotificationCenter
  • System.Android.Service
  • System.Android.ServiceApplication

该示例使用的为Android内置的java库。

  • Androidapi.JNI.App
  • AndroidApi.JNI.GraphicsContentViewText
  • Androidapi.JNI.Os

参阅


» 本文链接:http://www.soguifan.com/delphi/app/1532.html
» 订阅本站:http://www.soguifan.com/feed
» 转载请注明来源:搜规范 » 《RAD Studio Delphi C++安卓通知服务示例》

微信 OR 支付宝 扫描二维码
为本文作者 打个赏
pay_weixin    pay_weixin
金额随意 快来“打”我呀~




留言