Создание приложений Wear OS для Китая

При создании приложений Wear OS для Китая необходимо учитывать телефоны без предустановленных сервисов Google Play. На этой странице содержатся общие изменения, которые разработчикам, возможно, придется принять для китайского рынка.

Используйте правильную версию сервисов Google Play

Google Play services версии 10.2.0 обеспечивает всемирную поддержку Fused Location Provider API и Data Layer API . Вам необходимо использовать эту версию Google Play services, если вы используете эти API для обеспечения поддержки более широкого спектра устройств Wear OS в Китае. В других случаях эта зависимость необязательна.

Примечание: Хотя сервисы Google Play содержат API для приложений Wear OS, приложения Wear OS для Китая должны продолжать использовать API, связанные с GoogleApiClient ; см. раздел Доступ к API носимых устройств .

API поставщика объединенного местоположения

Если вы используете API Fused Location Provider, включите следующую зависимость в файл build.gradle вашего модуля Wear OS:

Круто

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-location:10.2.0'
}

Котлин

dependencies {
    ...
    implementation("com.google.android.gms:play-services-location:10.2.0")
}

API уровня данных

Если ваше приложение использует API Data Layer, вам необходимо добавить следующую строку в файл build.gradle вашего модуля Wear OS. Строка требует использования версии 10.2.0 клиентской библиотеки.

Круто

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
    ...
}

Котлин

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
    ...
}

Добавьте следующую строку в файл build.gradle вашего мобильного модуля. Замените зависимость Google Play services ссылкой на версию 10.2.0.

Круто

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
}

Котлин

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
}

Аутентификация

Перед внедрением аутентификации просмотрите ваши варианты использования, чтобы увидеть, действительно ли нужна аутентификация. Например, для приложения, предоставляющего прогноз погоды, скорее всего, не потребуется вход в систему и, следовательно, аутентификация.

Если вам требуется аутентификация, мы рекомендуем использовать библиотеку AndroidX Oauth . Для этого требуется использование Authorization Code Grant с потоком PKCE . Вы также можете использовать один из других методов, описанных в разделе Аутентификация на носимых устройствах . Использование Wearable Support Library не рекомендуется.

Более подробную информацию можно найти в примере Wear OS OAuth на GitHub.

Мостовые уведомления

Уведомления с моста не поддерживаются в Китае. Уведомления с телефона передаются на Wear OS только в том случае, если устройство Wear OS подключено к телефону с помощью Bluetooth.

Совместимость местоположения и координат картографирования

Используйте FusedLocationProvider (FLP) для определения местоположения пользователя в Китае, как и для остального мира. Это гарантирует, что ваше приложение учитывает наилучшую информацию независимо от аппаратного обеспечения часов и платформы телефона, к которому подключены часы. Использование FLP также добавляет оптимизацию батареи, встроенную в платформу Wear OS.

При интеграции FusedLocationProvider со сторонними картографическими SDK учитывайте совместимость координат между поставщиками. FusedLocationProvider сообщает местоположение в соответствии со стандартом WGS84 . Обязательно преобразуйте системы координат соответствующим образом.

Поддержка Google Fit

Счетчик накопленных шагов, минут движения и баллов сердечного ритма Google Fit поддерживается в Китае с историей до семи дней. Вы можете получить к ней доступ без предоставления учетных данных пользователя.

Поддержка голосовых команд

Платформа Wear OS предоставляет несколько голосовых намерений, основанных на действиях пользователя, таких как _«Показать частоту сердечных сокращений»_ или _«Установить будильник»_. Это позволяет пользователям говорить, что они хотят сделать, и позволяет системе определять наилучшее занятие для начала.

Когда пользователи произносят голосовое действие, ваше приложение может фильтровать намерение, которое запускается для запуска действия. Чтобы запустить службу в фоновом режиме, покажите действие как визуальную подсказку и запустите службу в действии. Обязательно вызовите finish() , чтобы избавиться от визуальной подсказки.

Вот список голосовых намерений, поддерживаемых платформой Wear OS:

Категория Пример Спецификация намерения
Вызов автомобиля打车去三里屯Действие

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Дополнительный

to : признанный пункт назначения

Дополнительная опция необязательна.

Установить будильник设置一个明早七点的闹钟Действие

android.intent.action.SET_ALARM

Дополнительно

android.provider.AlarmClock.EXTRA_HOUR : целое число с часом будильника

android.provider.AlarmClock.EXTRA_MINUTES : целое число с минутой будильника

Эти дополнения необязательны. Предоставьте одно из этих дополнений, оба или ни одно из них.

Установить таймер设置一个三分钟的倒计时Действие

android.intent.action.SET_TIMER

Дополнительно

android.provider.AlarmClock.EXTRA_LENGTH : целое число в диапазоне от 1 до 86400 (количество секунд в 24 часах), представляющее длительность таймера

Запустить секундомер开始计时Действие

com.google.android.wearable.action.STOPWATCH

Начать или закончить велопрогулку开始骑车Действие

vnd.google.fitness.TRACK

Тип пантомимы

vnd.google.fitness.activity/biking

Дополнительно

actionStatus : строка со значением ActiveActionStatus при запуске и CompletedActionStatus при остановке

Начать или остановить пробежку开始跑步Действие

vnd.google.fitness.TRACK

Тип пантомимы

vnd.google.fitness.activity/running

Дополнительно

actionStatus : строка со значением ActiveActionStatus при запуске и CompletedActionStatus при остановке

Начать или остановить тренировку开始锻炼Действие

vnd.google.fitness.TRACK

Тип пантомимы

vnd.google.fitness.activity/other

Дополнительно

actionStatus : строка со значением ActiveActionStatus при запуске и CompletedActionStatus при остановке

Показать частоту сердечных сокращений查看心率Действие

vnd.google.fitness.VIEW

Тип пантомимы

vnd.google.fitness.data_type/com.google.heart_rate.bpm

Показать количество шагов查看步数Действие

vnd.google.fitness.VIEW

Тип пантомимы

vnd.google.fitness.data_type/com.google.step_count.cumulative

Навигация导航去三里屯Действие

android.intent.action.VIEW

Данные

geo:широта,долгота?q=融科资讯中心

Голосовой помощник также может использовать существующие общие намерения Android для запуска определенных действий там, где это применимо.

Поддержка эмулятора

Вы можете использовать китайскую версию образа эмулятора Wear OS для тестирования своих приложений. Это поддерживается Android Studio 3.0 и выше.

Чтобы протестировать свои приложения на китайской версии эмулятора, выполните следующие действия:

  1. Установите эмулятор Android.
  2. Загрузите образы Wear OS for China из SDK manager. Используйте версию для Wear OS 3.5 (API level 30).
  3. При создании профиля AVD выберите образ Wear OS for China.
  4. Запустите эмулятор Wear OS for China для разработки.
  5. Рисунок 1. Примеры китайской версии эмулятора Wear OS.

Эта версия эмулятора Wear OS поставляется с несколькими предустановленными приложениями:

  • Режим окружающей среды
  • Контакты
  • Рукописный ввод Google
  • Сервисы Google Play
  • Медицинские услуги для Wear OS
  • Распознавание горячих слов для устройств LE
  • Пиньинь
  • Play Store (адаптирован для устройств в Китае)
  • Карманные часы
  • TalkBack
  • Циферблаты (как аналоговые, так и цифровые версии)
  • Основные услуги Wear

Инициировать канал Bluetooth и Wi-Fi для конкретного приложения

Wear OS автоматически маршрутизирует сетевые запросы. В большинстве случаев приложению не требуется открывать канал Bluetooth и Wi-Fi, специфичный для приложения.

Если приложение запрашивает канал Bluetooth и Wi-Fi для приложения в Китае, запрос молча отклоняется. Вместо этого отображается диалоговое окно с просьбой к пользователю подтвердить. Если пользователь подтверждает, канал открывается. Это происходит каждый раз, а не только при первом использовании. Вызывается BluetoothAdapter.enable() или WifiManager.setEnabled(true) .

Примечание: Чтобы приложение, ориентированное на Android 10 (уровень API 29) или выше, могло вызвать WifiManager.setEnabled() , оно должно быть системным приложением или контроллером политики устройства (DPC) .

Режим проверки разрешений

В Китае устройства Wear OS for China работают в режиме проверки разрешений, который накладывает некоторые ограничения на использование приложений с targetApiLevel ниже 23. Ознакомьтесь со следующими ограничениями:

  • Несмотря на то, что разрешения предоставляются во время установки, при первом запуске приложения с targetApiLevel ниже 23 появляется диалоговое окно с просьбой подтвердить разрешения для этого приложения.
  • Компоненты приложения, такие как приемники вещания, службы и действия, не реагируют на соответствующие события до первого использования приложения.

В связи с этим мы рекомендуем вам использовать targetApiLevel 23 или выше и следовать лучшим практикам в отношении разрешений приложений .

Используйте API других сервисов Google Play

Если ваше приложение использует API сервисов Google Play, отличные от API Wearable, то вашему приложению необходимо проверить, доступны ли эти API для использования во время выполнения, и отреагировать соответствующим образом. Существует два способа проверки доступности API сервисов Google Play:

  1. Используйте отдельный экземпляр GoogleApiClient для подключения к другим API. Этот интерфейс содержит обратные вызовы для оповещения вашего приложения об успешном или неудачном подключении. В случае неудачного подключения ConnectionResult показывает API_UNAVAILABLE . Чтобы узнать, как обрабатывать сбои подключения, см. Access Google APIs .
  2. Используйте метод addApiIfAvailable() GoogleApiClient.Builder для подключения к требуемым API. После срабатывания обратного вызова onConnected() используйте метод hasConnectedApi() , чтобы убедиться, что каждый из запрошенных API подключен правильно.

Распространять приложения в Китае

Чтобы эффективно охватить пользователей Wear OS в Китае, вы можете распространять свое приложение через сторонние магазины приложений Wear OS, например:

,

При создании приложений Wear OS для Китая необходимо учитывать телефоны без предустановленных сервисов Google Play. На этой странице содержатся общие изменения, которые разработчикам, возможно, придется принять для китайского рынка.

Используйте правильную версию сервисов Google Play

Google Play services версии 10.2.0 обеспечивает всемирную поддержку Fused Location Provider API и Data Layer API . Вам необходимо использовать эту версию Google Play services, если вы используете эти API для обеспечения поддержки более широкого спектра устройств Wear OS в Китае. В других случаях эта зависимость необязательна.

Примечание: Хотя сервисы Google Play содержат API для приложений Wear OS, приложения Wear OS для Китая должны продолжать использовать API, связанные с GoogleApiClient ; см. раздел Доступ к API носимых устройств .

API поставщика объединенного местоположения

Если вы используете API Fused Location Provider, включите следующую зависимость в файл build.gradle вашего модуля Wear OS:

Круто

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-location:10.2.0'
}

Котлин

dependencies {
    ...
    implementation("com.google.android.gms:play-services-location:10.2.0")
}

API уровня данных

Если ваше приложение использует API Data Layer, вам необходимо добавить следующую строку в файл build.gradle вашего модуля Wear OS. Строка требует использования версии 10.2.0 клиентской библиотеки.

Круто

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
    ...
}

Котлин

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
    ...
}

Добавьте следующую строку в файл build.gradle вашего мобильного модуля. Замените зависимость Google Play services ссылкой на версию 10.2.0.

Круто

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
}

Котлин

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
}

Аутентификация

Перед внедрением аутентификации просмотрите ваши варианты использования, чтобы увидеть, действительно ли нужна аутентификация. Например, для приложения, предоставляющего прогноз погоды, скорее всего, не потребуется вход в систему и, следовательно, аутентификация.

Если вам требуется аутентификация, мы рекомендуем использовать библиотеку AndroidX Oauth . Для этого требуется использование Authorization Code Grant с потоком PKCE . Вы также можете использовать один из других методов, описанных в разделе Аутентификация на носимых устройствах . Использование Wearable Support Library не рекомендуется.

Более подробную информацию можно найти в примере Wear OS OAuth на GitHub.

Мостовые уведомления

Уведомления с моста не поддерживаются в Китае. Уведомления с телефона передаются на Wear OS только в том случае, если устройство Wear OS подключено к телефону с помощью Bluetooth.

Совместимость местоположения и координат картографирования

Используйте FusedLocationProvider (FLP) для определения местоположения пользователя в Китае, как и для остального мира. Это гарантирует, что ваше приложение учитывает наилучшую информацию независимо от аппаратного обеспечения часов и платформы телефона, к которому подключены часы. Использование FLP также добавляет оптимизацию батареи, встроенную в платформу Wear OS.

При интеграции FusedLocationProvider со сторонними картографическими SDK учитывайте совместимость координат между поставщиками. FusedLocationProvider сообщает местоположение в соответствии со стандартом WGS84 . Обязательно преобразуйте системы координат соответствующим образом.

Поддержка Google Fit

Счетчик накопленных шагов, минут движения и баллов сердечного ритма Google Fit поддерживается в Китае с историей до семи дней. Вы можете получить к ней доступ без предоставления учетных данных пользователя.

Поддержка голосовых команд

Платформа Wear OS предоставляет несколько голосовых намерений, основанных на действиях пользователя, таких как _«Показать частоту сердечных сокращений»_ или _«Установить будильник»_. Это позволяет пользователям говорить, что они хотят сделать, и позволяет системе определять наилучшее занятие для начала.

Когда пользователи произносят голосовое действие, ваше приложение может фильтровать намерение, которое запускается для запуска действия. Чтобы запустить службу в фоновом режиме, покажите действие как визуальную подсказку и запустите службу в действии. Обязательно вызовите finish() , чтобы избавиться от визуальной подсказки.

Вот список голосовых намерений, поддерживаемых платформой Wear OS:

Категория Пример Спецификация намерения
Вызов автомобиля打车去三里屯Действие

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Дополнительный

to : признанный пункт назначения

Дополнительная опция необязательна.

Установить будильник设置一个明早七点的闹钟Действие

android.intent.action.SET_ALARM

Дополнительно

android.provider.AlarmClock.EXTRA_HOUR : целое число с часом будильника

android.provider.AlarmClock.EXTRA_MINUTES : целое число с минутой будильника

Эти дополнения необязательны. Предоставьте одно из этих дополнений, оба или ни одно из них.

Установить таймер设置一个三分钟的倒计时Действие

android.intent.action.SET_TIMER

Дополнительно

android.provider.AlarmClock.EXTRA_LENGTH : целое число в диапазоне от 1 до 86400 (количество секунд в 24 часах), представляющее длительность таймера

Запустить секундомер开始计时Действие

com.google.android.wearable.action.STOPWATCH

Начать или закончить велопрогулку开始骑车Действие

vnd.google.fitness.TRACK

Тип пантомимы

vnd.google.fitness.activity/biking

Дополнительно

actionStatus : строка со значением ActiveActionStatus при запуске и CompletedActionStatus при остановке

Начать или остановить пробежку开始跑步Действие

vnd.google.fitness.TRACK

Тип пантомимы

vnd.google.fitness.activity/running

Дополнительно

actionStatus : строка со значением ActiveActionStatus при запуске и CompletedActionStatus при остановке

Начать или остановить тренировку开始锻炼Действие

vnd.google.fitness.TRACK

Тип пантомимы

vnd.google.fitness.activity/other

Дополнительно

actionStatus : строка со значением ActiveActionStatus при запуске и CompletedActionStatus при остановке

Показать частоту сердечных сокращений查看心率Действие

vnd.google.fitness.VIEW

Тип пантомимы

vnd.google.fitness.data_type/com.google.heart_rate.bpm

Показать количество шагов查看步数Действие

vnd.google.fitness.VIEW

Тип пантомимы

vnd.google.fitness.data_type/com.google.step_count.cumulative

Навигация导航去三里屯Действие

android.intent.action.VIEW

Данные

geo:широта,долгота?q=融科资讯中心

Голосовой помощник также может использовать существующие общие намерения Android для запуска определенных действий там, где это применимо.

Поддержка эмулятора

Вы можете использовать китайскую версию образа эмулятора Wear OS для тестирования своих приложений. Это поддерживается Android Studio 3.0 и выше.

Чтобы протестировать свои приложения на китайской версии эмулятора, выполните следующие действия:

  1. Установите эмулятор Android.
  2. Загрузите образы Wear OS for China из SDK manager. Используйте версию для Wear OS 3.5 (API level 30).
  3. При создании профиля AVD выберите образ Wear OS for China.
  4. Запустите эмулятор Wear OS for China для разработки.
  5. Рисунок 1. Примеры китайской версии эмулятора Wear OS.

Эта версия эмулятора Wear OS поставляется с несколькими предустановленными приложениями:

  • Режим окружающей среды
  • Контакты
  • Рукописный ввод Google
  • Сервисы Google Play
  • Медицинские услуги для Wear OS
  • Распознавание горячих слов для устройств LE
  • Пиньинь
  • Play Store (адаптирован для устройств в Китае)
  • Карманные часы
  • TalkBack
  • Циферблаты (как аналоговые, так и цифровые версии)
  • Основные услуги Wear

Инициировать канал Bluetooth и Wi-Fi для конкретного приложения

Wear OS автоматически маршрутизирует сетевые запросы. В большинстве случаев приложению не требуется открывать канал Bluetooth и Wi-Fi, специфичный для приложения.

Если приложение запрашивает канал Bluetooth и Wi-Fi для приложения в Китае, запрос молча отклоняется. Вместо этого отображается диалоговое окно с просьбой к пользователю подтвердить. Если пользователь подтверждает, канал открывается. Это происходит каждый раз, а не только при первом использовании. Вызывается BluetoothAdapter.enable() или WifiManager.setEnabled(true) .

Примечание: Чтобы приложение, ориентированное на Android 10 (уровень API 29) или выше, могло вызвать WifiManager.setEnabled() , оно должно быть системным приложением или контроллером политики устройства (DPC) .

Режим проверки разрешений

В Китае устройства Wear OS for China работают в режиме проверки разрешений, который накладывает некоторые ограничения на использование приложений с targetApiLevel ниже 23. Ознакомьтесь со следующими ограничениями:

  • Несмотря на то, что разрешения предоставляются во время установки, при первом запуске приложения с targetApiLevel ниже 23 появляется диалоговое окно с просьбой подтвердить разрешения для этого приложения.
  • Компоненты приложения, такие как приемники вещания, службы и действия, не реагируют на соответствующие события до первого использования приложения.

В связи с этим мы рекомендуем вам использовать targetApiLevel 23 или выше и следовать лучшим практикам в отношении разрешений приложений .

Используйте API других сервисов Google Play

Если ваше приложение использует API сервисов Google Play, отличные от API Wearable, то вашему приложению необходимо проверить, доступны ли эти API для использования во время выполнения, и отреагировать соответствующим образом. Существует два способа проверки доступности API сервисов Google Play:

  1. Используйте отдельный экземпляр GoogleApiClient для подключения к другим API. Этот интерфейс содержит обратные вызовы для оповещения вашего приложения об успешном или неудачном подключении. В случае неудачного подключения ConnectionResult показывает API_UNAVAILABLE . Чтобы узнать, как обрабатывать сбои подключения, см. Access Google APIs .
  2. Используйте метод addApiIfAvailable() GoogleApiClient.Builder для подключения к требуемым API. После срабатывания обратного вызова onConnected() используйте метод hasConnectedApi() , чтобы убедиться, что каждый из запрошенных API подключен правильно.

Распространять приложения в Китае

Чтобы эффективно охватить пользователей Wear OS в Китае, вы можете распространять свое приложение через сторонние магазины приложений Wear OS, например: