从 Android 14(API 级别 34)开始,您必须为每个前台服务声明适当的服务类型。这意味着,您必须在应用清单中声明服务类型,并且除了请求 权限之外,还必须为该类型请求适当的前台服务权限。此外,根据前台服务类型,您可能需要在启动服务之前请求运行时权限。
- 要在清单中的 下声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
-
请求并获得 运行时权限
注意: 运行时权限受使用时限制。因此,当您的应用位于后台时,您无法创建 前台服务,但存在一些例外情况。如需了解详情,请参阅有关启动需要运行时权限的前台服务的限制。
- 说明
-
继续在后台访问摄像头,例如支持多任务的视频聊天应用。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
-
必须至少满足以下其中一个条件:
- 在清单中至少声明以下其中一项权限:
- 请求并获得以下至少一项运行时权限:
- 调用
- 在清单中至少声明以下其中一项权限:
- 说明
-
与需要蓝牙、NFC、IR、USB 或网络连接的外部设备进行互动。
- 替代方案
-
如果您的应用需要持续将数据传输到外部设备,请考虑改用配套设备管理器。使用配套设备在线状态 API 帮助您的应用在配套设备在范围内时保持运行。
-
如果您的应用需要扫描蓝牙设备,请考虑改用 Bluetooth Scanner API。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
- 无
- 说明
-
数据传输操作,例如:
- 数据上传或下载
- 备份和恢复操作
- 导入或导出操作
- 获取数据
- 本地文件处理
- 通过网络在设备和云端之间传输数据
- 替代方案
-
如需了解详情,请参阅数据同步前台服务的替代方案。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
-
必须至少满足以下其中一个条件:
- 在清单中声明 权限。
- 请求并获得以下至少一项运行时权限:
注意: 运行时权限受使用时限制。因此,您无法创建在应用在后台运行时使用身体传感器的 前台服务,但存在一些例外情况。如需了解详情,请参阅有关启动需要运行时权限的前台服务的限制。
- 说明
-
为健身类别的应用(例如锻炼追踪器)提供支持的所有长时间运行的用例。
- 要在清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
-
用户必须已启用位置信息服务,并且必须至少向应用授予以下运行时权限之一:
注意:如需检查用户是否已启用位置信息服务以及是否已授予运行时权限的访问权限,请使用
注意:位置信息运行时权限受使用时限制的约束。因此,当应用在后台运行时,您无法创建 前台服务,除非您已被授予 运行时权限。如需了解详情,请参阅对启动需要在使用时授予权限的前台服务的限制。
- 说明
-
需要位置信息使用权的长时间运行的用例,例如导航和位置信息分享。
- 替代方案
-
如果您的应用需要在用户到达特定位置时触发,请考虑改用 Geofence API。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
- 无
- 说明
- 在后台继续播放音频或视频。在 Android TV 上支持数字视频录制 (DVR) 功能。
- 替代方案
- 如果您显示的是画中画视频,请使用画中画模式。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
-
在启动前台服务之前,调用 方法。执行此操作会向用户显示权限通知;用户必须授予权限,您才能创建服务。
-
创建前台服务后,您可以调用 。
- 说明
-
使用 API 将内容投影到非主要显示屏或外部设备。这些内容不一定是完全媒体内容。
- 替代方案
-
如需将媒体内容流式传输到其他设备,请使用 Google Cast SDK。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
-
请求并获得 运行时权限。
注意: 运行时权限受使用时限制。因此,当您的应用位于后台时,您无法创建 前台服务,但存在一些例外情况。如需了解详情,请参阅有关启动需要运行时权限的前台服务的限制。
- 说明
-
在后台继续捕获麦克风内容,例如录音器或通信应用。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
-
必须至少满足以下其中一个条件:
-
- 应用已在其清单文件中声明 权限。
-
- 应用通过 角色成为默认拨号器应用。
- 说明
-
使用 API 继续当前通话。
- 替代方案
-
如果您需要拨打电话、视频或 VoIP 通话,请考虑使用 库。
-
不妨考虑使用 过滤来电。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
- 无
- 说明
- 将短信从一台设备转移到另一台设备。在用户切换设备时,帮助确保用户消息任务的连续性。
- 要在其清单中声明的前台服务类型
- 在清单中声明的权限
- 无
- 要传递给 的常量
- 运行时前提条件
- 无
- 说明
-
快速完成不可中断或推迟的关键工作。
这种类型有一些独特的特征:
- 只能持续运行一小段时间(大约 3 分钟)。
- 不支持粘性前台服务。
- 无法启动其他前台服务。
- 不需要类型专用权限,不过它仍需要 权限。
- 只有当应用当前有资格启动新的前台服务时, 才能更改为另一种服务类型。
- 前台服务可以随时将其类型更改为 ,届时超时期限将开始。
shortService 的超时时间从调用 开始算起。应用应在发生超时之前调用 或 。否则,系统会调用新的 ,让应用有机会调用 或 来停止其服务。
调用 后的短时间内,应用会进入缓存状态,并且不再被视为处于前台,除非用户正在主动与应用互动。应用缓存一小段时间后,服务还未停止,该应用会收到 ANR 消息。ANR 消息提及 。出于这些原因,实现 回调被视为一种最佳实践。
Android 13 及更低版本中不存在 回调。如果同一服务在此类设备上运行,则不会出现超时,也不会发生 ANR。确保您的服务在完成处理任务后立即停止,即使它尚未收到 回调也是如此。
请务必注意,如果未遵循 的超时设置,即使应用还有其他有效的前台服务或其他应用生命周期进程,应用也会遇到 ANR。
如果应用对用户可见,或满足允许从后台启动前台服务的某一豁免条件,则使用 参数再次调用 会将超时时间再延长 3 分钟。如果应用对用户不可见且不满足其中一个豁免条件,则尝试启动其他前台服务(无论其类型如何)都会导致 。
即使用户为您的应用停用功能,仍然会受到 shortService FGS 的影响。
如果您启动包含 类型和另一个前台服务类型的前台服务,系统会忽略 类型声明。不过,该服务仍必须遵守其他声明类型的前提条件。如需了解详情,请参阅前台服务文档。
- 要在清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
- 无
- 说明
-
涵盖其他前台服务类型未涵盖的所有有效前台服务用例。
除了声明 前台服务类型之外,开发者还应在清单中声明用例。为此,他们会在 元素内指定 元素。这些值和相应的应用场景 。用途 您提供的案例均为自由形式,因此,您应确保提供足够的 相关信息,让审核人员了解您为何需要使用 类型。
- 要在清单中声明的前台服务类型
- 在清单中声明的权限
- 要传递给 的常量
- 运行时前提条件
- 无
- 说明
-
为系统应用和特定系统集成预留, 继续使用前台服务。
如需使用此类型,应用必须至少满足以下条件之一:
- 设备处于演示模式状态
- 应用是
- 应用是
- 属于具有 角色的安全应用
- 属于设备管理应用
- 持有 或 权限,并且正在使用 前台服务用于在后台继续闹钟, 包括仅触感反馈闹钟。
- VPN 应用(通过设置 > 网络和互联网 > VPN 配置)
否则,声明此类型会导致系统抛出 。
如果您的应用以 Android 14 或更高版本为目标平台,您需要在 Play 管理中心的应用内容页面(政策 > 应用内容)中声明应用的前台服务类型。如需详细了解如何在 Play 管理中心内声明前台服务类型,请参阅了解前台服务和全屏 intent 要求。
到此这篇pass around服务(pass层服务)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/13850.html