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

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

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

Службы Google Play версии 10.2.0 обеспечивают глобальную поддержку API Fused Location Provider и API уровня данных . Вам необходимо использовать эту версию сервисов Google Play, если вы используете эти 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 уровня данных, вам необходимо добавить следующую строку в файл 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 . Для этого необходимо использовать предоставление кода авторизации с потоком PKCE . Вы также можете использовать один из других методов, описанных в разделе Аутентификация на носимых устройствах . Использование библиотеки поддержки носимых устройств не рекомендуется.

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

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

  • Окружающий режим
  • Контакты
  • Рукописный ввод Google
  • Сервисы Google Play
  • Службы работоспособности для Wear OS
  • Распознавание горячих слов для устройств LE
  • Пиньинь
  • Play Store (адаптирован для устройств в Китае)
  • Карманные часы
  • Обратный разговор
  • Циферблаты (аналоговые и цифровые версии)
  • Основные услуги 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 носимых устройств, тогда вашему приложению необходимо проверить, доступны ли эти API для использования во время выполнения, и отреагировать соответствующим образом. Проверить доступность API сервисов Google Play можно двумя способами:

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

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

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