请求对身体传感器数据的后台访问权限
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Android 13 和 Wear OS 4 引入了一种应用访问身体传感器的方式,例如
心率。这种新的访问模式与
Android 10(API 级别 29)中引入了后台位置信息访问权限。
如果您的应用需要在后台访问身体传感器信息(例如在后台监控健康服务数据时),您必须请求 BODY_SENSORS_BACKGROUND
权限。
按照隐私权最佳实践页面中所述,应用应仅在必须用于面向用户的功能时才获取 BODY_SENSORS_BACKGROUND
权限,并且以恰当的方式向用户披露请求的内容。
授予权限的过程取决于应用的目标 SDK 版本。
以 Android 13 或更高版本为目标平台的应用
除了现有的 BODY_SENSORS
权限之外,还应在清单文件中声明 BODY_SENSORS_BACKGROUND
权限:
<uses-permission android:name="android.permission.BODY_SENSORS">
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND">
然后,您的应用必须在单独的操作中请求这些权限:
- 检查是否已授予
BODY_SENSORS
。否则,请申请该权限。
- 检查是否已授予
BODY_SENSORS_BACKGROUND
。如尚未授予,请申请相应权限。
注意:如果您的应用同时请求这两项身体传感器权限,系统会忽略该请求,且不会向您的应用授予任一权限。
在 Android 13(API 级别 33)及更高版本中,运行时权限对话框不包含“始终允许”选项。相反,用户必须在系统设置中启用始终可用的后台传感器访问权限,如图 1 所示。授予 BODY_SENSORS
权限后请求 BODY_SENSORS_BACKGROUND
权限时,您可以帮助用户前往此设置页面。如果用户拒绝始终可用的访问权限,也应能够继续使用您的应用。
以较低版本为目标平台的应用
如果您的应用以 Android 13 之前的 Android 版本为目标平台,当您请求 BODY_SENSORS
权限时,系统不会自动授予后台访问权限。相反,用户会看到一个系统对话框,邀请用户转到应用的传感器权限设置,如图 2 所示。然后,用户必须在该设置页面上启用后台传感器使用权限。
用户可以拒绝后台访问。这与应用在后台运行时撤消 BODY_SENSORS
权限的效果相同。如果某个应用在没有后台访问权限的情况下使用 PassiveMonitoringClient
并进入后台,该应用会失去 BODY_SENSORS
权限,并且系统会调用 onPermissionLost()
回调函数。因此,遵循有关请求运行时权限的最佳实践特别重要。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-08-23。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-08-23\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-08-23。"]]