Wear OS 5 开发者预览版基于 Android 14(API 级别 34),这是一个较新的 Android 版本, 版本与 Wear OS 4 所依赖的版本(Android 13 或 API 33 级)。因此,当您准备要在 Wear OS 5 开发者预览版上使用 Wear OS 应用时, 您需要处理会影响所有 Android 应用的系统行为变更 14,以及针对以 Android 14 为目标平台的应用的变更。
Wear OS 5 变更会影响所有应用
以下行为变更会影响 Wear OS 应用这些变更会影响在 Wear OS 5 上运行的所有应用,无论这些应用是 目标 SDK 版本。
隐私信息中心
Wear OS 5 开发者预览版增加了对隐私信息中心的支持,最初该信息中心 搭载 Android 12 的移动设备。
隐私信息中心可让用户集中查看每个应用的数据使用情况, 包括以下详细信息:
- 被访问的数据类型,例如位置信息和麦克风。
- 访问这些数据类型的时间距离现在多久。
通过访问这些信息,用户可以就 哪些应用仍有权访问其个人数据。为了维护用户 信任、以负责任的方式使用数据,并且在收集和使用用户数据时保持透明 数据。
新手表仅显示使用表盘格式的表盘
在发布时搭载 Wear OS 5 开发者预览版的新手表上,表盘必须使用 表盘格式。因此,我们建议您改为使用 表盘格式
Wear OS 5 变更会影响以 Android 14 为目标平台的应用
只有在您更新目标 SDK 时,以下变更才会影响您的应用 更新到 Android 14(Wear OS 5 开发者预览版所依赖的版本)。
始终开启的应用可以移至后台
从 Wear OS 5 开发者预览版开始,系统会将始终开启的应用移至 背景。 用户可以在系统设置中配置超时。
如果始终开启的应用显示正在进行的用户任务的相关信息(例如 音乐播放或健身课程——您可能希望保留持续性活动 可见。为此,请使用 Ongoing Activity API 发布 与始终开启的活动相关联的持续性通知。
为了 以便系统识别持续性活动、持续性通知的轻触操作 intent 必须指向始终开启的 activity,如以下代码所示 代码段:
// Create a pending intent that point to your always-on activity
val touchIntent =
PendingIntent.getActivity(
context,
0,
Intent(context, MyAlwaysOnActivity::class.java),
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
val notificationBuilder =
NotificationCompat.Builder(this, CHANNEL_ID)
// ...
.setOngoing(true)
val ongoingActivity =
OngoingActivity.Builder(
applicationContext, NOTIFICATION_ID, notificationBuilder
)
// ...
.setTouchIntent(touchIntent)
.build()
ongoingActivity.apply(applicationContext)
notificationManager.notify(
NOTIFICATION_ID,
notificationBuilder.build()
)
暂时禁用变更以进行测试
此功能默认处于启用状态。要停用 以便测试此变更,请使用以下命令:
adb shell device_config put wear_frameworks \
com.google.android.clockwork.systemui.flags.ambiactive_components_expirable \
false && adb reboot
锻炼记录应用必须声明前台服务类型
如果您的应用会在用户锻炼期间记录锻炼,您必须
请在相应前台服务中指定 health
前台服务类型,
调用 ExerciseClient
。此外,如果您的应用可以监控位置信息
信息,您还需要指定 location
前台服务类型:
<manifest ...> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <application ...> <!-- If your app can also monitor location information, use android:foregroundServiceType="health|location" instead. --> <service android:name=".MyExerciseSessionRecorder" android:foregroundServiceType="health"> </service> </application> </manifest>
一些摘下手表的设备保持解锁状态更长
在搭载 Wear OS 5 开发者预览版的受支持设备上,系统会检测 用户的手腕上佩戴设备。如果用户关闭手腕检测 然后将设备从手腕上取下,系统会保留设备 且解锁时间要比其他情况下长。
如果您的应用需要更高级别的安全性,例如在显示 可能敏感的数据或隐私数据,请先检查手腕检测功能是否 已启用:
val wristDetectionEnabled =
isWristDetectionAutoLockingEnabled(applicationContext)
如果此方法的返回值为 false
,请提示用户登录
账号,然后才能显示针对特定用户的内容。
可拖动的内容可能会与系统手势激活点重叠
从 Wear OS 5 开发者预览版开始,系统会处理动作事件手势 与系统界面中使用的手势导航分开。
如果应用的界面包含与系统手势重叠的大型可拖动空间
那么您可能需要为这些矩形添加系统手势排除矩形
观看次数。为此,请调用 setSystemGestureExclusionRects()
以指示
系统界面,以忽略指定区域中导航手势。类似于
如何处理移动应用中存在冲突的应用手势,以提供
全面提升应用的使用体验。
您可以使用 setSystemGestureExclusionRects()
API 来获取系统界面
以不同的方式响应手势请求。例如,系统界面可能会显示
额外的界面提示(如水平栏)来确认用户的意图。
非线性字体缩放
从 Wear OS 5 开发者预览版开始,系统支持更流畅的字体缩放, 特别是在用户选择较大字号的情况下,在基于视图的界面中 组件。
对隐式 intent 和待处理 intent 的限制
如果您在应用中使用功能块,请检查您的 intent 会受到对隐式 intent 和待处理 intent 的限制的影响。
某些通知仍无法关闭
在搭载 Android 14 的设备上使用手持版应用时 (API 级别 34)或更高版本,用户可以关闭以下通知: 不可关闭。
不过,在 Wear OS 5 开发者预览版中,这些通知仍不可关闭。
Android 14 中的其他变更
Android 14 中的以下变更最有可能影响您的 Wear OS 应用。
影响所有应用的 Android 14 变更
影响以 API 级别 34 为目标平台的应用的 Android 14 变更
- 前台服务类型为必填项
- 在
BluetoothAdapter
中强制执行BLUETOOTH_CONNECT
权限 JobScheduler
加强回调和网络行为- 必须明确导出或不明确导出运行时注册的广播接收器 已导出
- 更安全的动态代码加载
- 针对从后台启动 activity 的其他限制
- 用户可以授予对照片和视频的部分访问权限
为您推荐
- 注意:当 JavaScript 处于关闭状态时,系统会显示链接文字
- Android 10 中的隐私权变更
- 连接到 GATT 服务器 {:#connect}
- 在后台通信