HarmonyOS Sample 之 ServiceAbility 跨设备接口调用 原创 精华
目录
ServiceAbility 跨设备接口调用
介绍
本示例演示了Service Ability的启动、停止、连接、断开连接等操作,支持对跨设备的Service Ability进行操作。
你将学会以下三个知识点:
1.IDL的使用,以及IPC方法的调用
2.前台Service的使用方法
3.EventHandle事件处理的使用方法
搭建环境
安装DevEco Studio,详情请参考DevEco Studio下载。
设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:
如果可以直接访问Internet,只需进行下载HarmonyOS SDK操作。
如果网络不能直接访问Internet,需要通过代理服务器才可以访问,请参考配置开发环境。
代码结构解读
后台逻辑
页面布局文件只有一个 main_slice.xml
页面布局
三个知识点
1.IDL的使用,以及IPC方法的调用
术语:
当客户端和服务器通信时,需要定义双方都认可的接口,以保障双方可以成功通信,HarmonyOS IDL(HarmonyOS Interface Definition Language)则是一种定义此类接口的工具。
跨进程调用(IPC)inter-process communication 或 跨设备调用(RPC)remote procedure call
IDL接口使用规范:
https://developer.harmonyos.com/cn/docs/documentation/doc-references/idl-overview-0000001050762835
先声明权限,同时敏感权限还需要请求用户授权,前几篇都有写过这里就不写了。
a.创建.idl文件
IRemoteAgent.idl
b.编译idl文件,生成对应的接口类、桩类和代理类
![]() |
![]() |
c.服务端IDL的实现
d.客户端调用IPC方法
2.前台Service的使用方法
a.权限声明:
b.设置通知栏内容,然后,
在onStart方法调用keepBackgroundRunning方法在后台保留此服务能力并显示通知栏。
在onStop方法调用cancelBackgroundRunning()方法取消此功能的后台运行以释放系统内存。
3.EventHandle事件处理的使用方法
EventHandler 将事件或 Runnable 任务传递到线程的事件队列,并在事件或任务从事件队列中出来时执行。
您可以使用 EventHandler 在不同线程之间调度和处理事件和 Runnable 对象,并在一定的时间间隔内安排要处理的事件或 Runnable 对象。您可以使用此类中提供的方法发送同步或异步事件、延迟事件处理以及设置事件优先级。
效果展示
前台Service | IPC/RPC调用 |
---|---|
![]() |
![]() |
完整代码
附件直接下载。
代码和演示都很详细,感谢楼主分享。
共同学习,希望对大家也能有一点点帮助!