打造中国版 Wear OS 应用时,您需要考虑未预安装 Google Play 服务的手机。本页介绍了国际开发者可能需要针对中国市场进行哪些常见的变更。
使用正确的 Google Play 服务版本
Google Play 服务 10.2.0 版为 Fused Location Provider API 和 Data Layer API 提供全球支持。如果开发者使用这些 API,则必须使用此版本。在其他情况下,此依赖项是可选的。
虽然 Google Play 服务现在包含 Wear 应用的新 API,但中国版 Wear OS 应用应继续使用与 GoogleApiClient
相关的 API;请参阅访问 Wearable API。
Fused Location Provider API
如果您使用的是 Fused Location Provider API,需要在 Wear 模块的 build.gradle
文件中添加以下依赖项:
dependencies { ... compile 'com.google.android.gms:play-services-location:10.2.0' }
Data Layer API
重要提示:自 Wear 2.0 以来,不再建议使用 Data Layer API。这是因为,应用现在可以直接访问互联网,从而简化了代码开发流程。此外,iOS 配对的 Wear 设备不支持 Data Layer API。
如果您的应用使用 Data Layer API,需要将以下行添加到 Wear 模块的 build.gradle
文件中。该行要求使用 10.2.0 版的客户端库:
dependencies { ... compile 'com.google.android.gms:play-services-wearable:10.2.0' ... }
此外,您还需要将以下行添加到 mobile 模块的 build.gradle
文件中。将 Google Play 服务依赖项替换为对 10.2.0 版本的引用。
dependencies { ... compile 'com.google.android.gms:play-services-wearable:10.2.0' }
身份验证
在实现身份验证之前,请检查您的用例,以查看是否确实需要身份验证。例如,对于提供天气预报的应用,可能不需要登录,因而无需进行身份验证。
如果您确实需要身份验证,我们建议您使用 OAuth 2.0,或使用设备上的输入作为后备措施。或者,您也可以使用 Data Layer 传递安全令牌。不过,建议您不要使用数据层,因为它不支持与 iOS 设备配对的 Wear OS 设备。
桥接通知
中国不支持桥接通知。仅当 Wear 设备通过蓝牙连接到手机时,才会将手机通知桥接到 Wear OS。
位置和地图坐标兼容性
您应使用 FusedLocationProvider 来检测用户在中国的位置,检测方式与在世界其他地方的检测方式一样。这样可确保您的应用获取最实用的信息,而不考虑手表硬件以及与手表配对的手机平台。此外,Wear OS 平台内置的电池优化功能也会发挥很大作用。
将 FusedLocationProvider
与第三方地图 SDK 集成时,您应考虑提供程序之间的坐标兼容性。FusedLocationProvider
按照 WGS84 标准报告位置信息。请务必视情况转换坐标系。
Google 健身支持
中国支持 Google 健身的累计计步器、活动时间和心肺强化分数,相关历史记录最多可保留七天。您可以在不提供用户凭据的情况下查看此历史记录。
模拟器支持
您可以使用中国版 Wear OS 模拟器映像来测试您的应用。Android Studio 3.0 及更高版本支持此功能。
如需在中国版模拟器上测试您的应用,请执行以下操作:
- 确保您已安装 Android 模拟器 26.1.2 版。
- 通过 SDK 管理器下载中国版 Wear OS 映像。
- 创建 AVD 配置文件时,选择使用中国版 Wear OS 映像。
- 运行中国版 Wear OS 模拟器以进行开发。




启动特定于应用的蓝牙和 WLAN 通道
Wear OS 会自动路由网络请求。在大多数情况下,不要求应用打开特定于应用的蓝牙和 WLAN 通道。
如果应用在中国请求特定于应用的蓝牙和 WLAN 通道,则该请求将静默失败。系统会显示一个弹出式对话框,要求用户进行确认。用户确认后,系统会打开相应通道。每次(也就是说,不仅仅是在首次使用时)调用 BluetoothAdapter.enable()
或 WifiManager.setEnabled(true)
时都会发生这种情况。
注意:对于面向 Android 10(API 级别 29)或更高版本的应用,如需调用 WifiManager.setEnabled()
,它必须是系统应用或设备策略控制器 (DPC)。
权限审核模式
在中国,中国版 Wear OS 设备在 Permission Review Mode
下运行,这对如何使用 targetApiLevel
低于 23 的应用施加了一些限制:
- 即使在安装时授予了相关权限,当
targetApiLevel
低于 23 的应用首次启动时,系统也会显示一个对话框,要求用户确认此应用的权限。 - 在首次使用应用之前,应用中的所有组件(如广播接收器、服务、Activity 等)都不会响应相应的事件。
因此,我们强烈建议您使用 targetApiLevel
23 或更高级别并采用运行时权限最佳做法。
使用其他 Google Play 服务 API
如果您的应用使用 Google Play 服务 API 而不是 Wearable API,那么您的应用需要检查这些 API 在运行时是否可用以及是否能够相应地做出响应。检查 Google Play 服务 API 可用性的方式有以下两种:
- 使用独立的 GoogleApiClient 实例来连接到其他 API。此接口包含回调以提醒您的应用连接成功还是失败。如果连接失败,ConnectionResult 将显示 API_UNAVAILABLE。如需了解如何处理连接失败的情况,请参阅访问 Google API。
- 使用 GoogleApiClient.Builder 的 addApiIfAvailable() 方法连接到所需的 API。触发 onConnected() 回调后,使用 hasConnectedApi() 方法确保请求的每个 API 都正确连接。
在中国分发应用
为了有效地覆盖中国版 Wear OS 的用户,您可以通过第三方 Wear OS 应用商店分发: