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

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

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

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

Примечание: Хотя сервисы 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 уровня данных, вам необходимо добавить следующую строку в файл 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 ссылкой на версию 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

Тип MIME

vnd.google.fitness.activity/biking

Дополнительные материалы

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

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

vnd.google.fitness.TRACK

Тип MIME

vnd.google.fitness.activity/running

Дополнительные материалы

actionStatus : строка, содержащая значение ActiveActionStatus при запуске и CompletedActionStatus при остановке.

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

vnd.google.fitness.TRACK

Тип MIME

vnd.google.fitness.activity/other

Дополнительные материалы

actionStatus : строка, содержащая значение ActiveActionStatus при запуске и CompletedActionStatus при остановке.

Отображение частоты сердечных сокращений查看心率Действие

vnd.google.fitness.VIEW

Тип MIME

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

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

vnd.google.fitness.VIEW

Тип MIME

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 для Китая из менеджера SDK. Используйте версию для Wear OS 3.5 (уровень API 30).
  3. При создании профиля AVD выберите образ Wear OS для Китая.
  4. Запустите эмулятор Wear OS для Китая в целях разработки.
  5. Рисунок 1. Примеры китайской версии эмулятора Wear OS.

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

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

Создайте канал 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 для китайского рынка работают в режиме проверки разрешений (Permission Review Mode), который накладывает некоторые ограничения на использование приложений с targetApiLevel ниже 23. Ознакомьтесь со следующими ограничениями:

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

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

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

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

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

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

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