Criar apps para Wear OS para a China

Ao criar apps do Wear OS para a China, é necessário considerar celulares que não têm o Google Play Services já instalado. Esta página apresenta as modificações mais comuns que os desenvolvedores internacionais podem precisar adotar para o mercado chinês.

Usar a versão correta do Google Play Services

A versão 10.2.0 do Google Play Services oferece suporte mundial à API Fused Location Provider e à API Data Layer. É necessário usar essa versão do Google Play Services ao implementar essas APIs para garantir suporte a uma maior variedade de dispositivos Wear OS na China. Em outros casos, essa dependência é opcional.

Observação: embora o Google Play Services contenha APIs para apps do Wear OS, os apps direcionados ao mercado chinês precisam continuar usando APIs relacionadas a GoogleApiClient. Consulte Acessar a API Wearable.

API do provedor de localização combinada

Se você usa a API do provedor de localização combinada, é necessário incluir a dependência abaixo no arquivo build.gradle do módulo do Wear OS:

Groovy

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

Kotlin

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

API Data Layer

Caso seu app use a API Data Layer, adicione a linha abaixo ao arquivo build.gradle do módulo do Wear OS. Essa linha requer o uso da versão 10.2.0 da biblioteca de cliente:

Groovy

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

Kotlin

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

Adicione a seguinte linha ao arquivo build.gradle do módulo para dispositivos móveis do app: Substitua a dependência do Google Play Services por uma referência à versão 10.2.0.

Groovy

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

Kotlin

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

Autenticação

Antes de implementar a autenticação, avalie os casos de uso do seu app para conferir se ela é mesmo necessária. Por exemplo, para um app de previsão do tempo, provavelmente não é necessário fazer login e nem autenticar o usuário.

Caso o app precise de autenticação, recomendamos o uso da biblioteca AndroidX Oauth. Nesse caso, é necessário implementar o fluxo de concessão de código de autorização com PKCE. Você também pode usar um dos outros métodos descritos em Autenticação em wearables. Não recomendamos o uso da Biblioteca de Suporte de Wearables.

Para mais informações, consulte o exemplo de OAuth do Wear OS (em inglês) no GitHub.

Notificações com ponte

As notificações com ponte não são permitidas na China. Só é possível transmitir notificações de um smartphone para o Wear OS se o dispositivo wearable estiver conectado ao smartphone via Bluetooth.

Compatibilidade com coordenadas de localização e mapeamento

Use o FusedLocationProvider (FLP) para detectar a localização do usuário na China, da mesma maneira que no restante do mundo. Isso garante que seu app considere as melhores informações disponíveis, independente do hardware do relógio e da plataforma do smartphone a que o relógio está pareado. O uso do FLP também proporciona otimização de bateria integrada à plataforma Wear OS.

Ao integrar FusedLocationProvider com SDKs de mapas de terceiros, considere a compatibilidade das coordenadas entre os provedores. O FusedLocationProvider informa a localização de acordo com o padrão WGS84 (link em inglês). Converta os sistemas de coordenadas, conforme necessário.

Suporte para o Google Fit

Os recursos contador de passos acumulados, Minutos em movimento e Pontos cardio do Google Fit estão disponíveis na China, com até sete dias de histórico. Você pode acessá-los sem uma credencial de usuário.

Suporte para comandos de voz

A plataforma Wear OS disponibiliza várias intents de voz baseadas em ações de usuários, como _"Mostrar frequência cardíaca"_ ou _"Definir um alarme"_. Com elas, os usuários podem falar o que querem fazer e o sistema decide qual é a melhor atividade a ser iniciada.

Quando o usuário solicita uma ação por voz, o app filtra a intent acionada para iniciar uma atividade. Para iniciar um serviço em segundo plano, mostre um indicador visual que represente a atividade e inicie o serviço na atividade. Chame finish() para remover o indicador visual.

Apresentamos a seguir uma lista de intents de voz com suporte na plataforma Wear OS:

Categorias Exemplo Especificações da intent
Chamar um carro 打车去三里屯 Ação

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Extra

to: o destino reconhecido.

O extra é opcional.

Definir alarme 设置一个明早七点的闹钟 Ação

android.intent.action.SET_ALARM

Extras

android.provider.AlarmClock.EXTRA_HOUR: um número inteiro com a hora do alarme.

android.provider.AlarmClock.EXTRA_MINUTES: um número inteiro com o minuto do alarme.

Os extras são opcionais. Informe ambos ou nenhum deles.

Definir timer 设置一个三分钟的倒计时 Ação

android.intent.action.SET_TIMER

Extras

android.provider.AlarmClock.EXTRA_LENGTH: um número inteiro no intervalo de 1 a 86400 (número de segundos em 24 horas) que representa a duração do timer.

Iniciar cronômetro 开始计时 Ação

com.google.android.wearable.action.STOPWATCH

Começar ou parar um passeio de bicicleta 开始骑车 Ação

vnd.google.fitness.TRACK

Tipo MIME

vnd.google.fitness.activity/biking

Extras

actionStatus: uma string com o valor ActiveActionStatus ao começar e CompletedActionStatus ao parar.

Começar ou parar uma corrida 开始跑步 Ação

vnd.google.fitness.TRACK

Tipo MIME

vnd.google.fitness.activity/running

Extras

actionStatus: uma string com o valor ActiveActionStatus ao começar e CompletedActionStatus ao parar.

Começar ou parar um treino 开始锻炼 Ação

vnd.google.fitness.TRACK

Tipo MIME

vnd.google.fitness.activity/other

Extras

actionStatus: uma string com o valor ActiveActionStatus ao começar e CompletedActionStatus ao parar.

Mostrar frequência cardíaca 查看心率 Ação

vnd.google.fitness.VIEW

Tipo MIME

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

Mostrar contador de passos 查看步数 Ação

vnd.google.fitness.VIEW

Tipo MIME

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

Navegação 导航去三里屯 Ação

android.intent.action.VIEW

Dados

geo:latitude,longitude?q=融科资讯中心

O Assistente por voz também pode usar intents comuns do Android para acionar alguns comportamentos, quando for o caso.

Suporte para emulador

Você pode usar a versão chinesa da imagem do emulador do Wear OS para testar seus apps. Ela oferece suporte para o Android Studio 3.0 e versões mais recentes.

Para testar seus apps na versão chinesa do emulador, siga estas etapas:

  1. Instale o Android Emulator.
  2. Faça o download das imagens do Wear OS para China no gerenciador do SDK. Use a versão para Wear OS 3.5 (nível 30 da API).
  3. Selecione a imagem do Wear OS para China ao criar um perfil do AVD.
  4. Execute o emulador do Wear OS para China enquanto desenvolve o app.
  5. Figura 1. Exemplos da versão chinesa do emulador do Wear OS.

Esta versão do emulador do Wear OS vem com vários apps pré-instalados:

  • Modo de som ambiente
  • Contatos
  • Google Handwriting Input
  • Google Play Services
  • Recursos de saúde para Wear OS
  • Reconhecimento de hotword para dispositivos LE
  • Pinyin
  • Play Store (adaptada para dispositivos na China)
  • Pocketwatch
  • TalkBack
  • Telas do relógio (versões analógicas e digitais)
  • Principais serviços do Wear

Iniciar um canal Bluetooth e Wi-Fi específico para app

O Wear OS roteia automaticamente solicitações de rede. Na maioria dos casos, não é necessário abrir um canal de Bluetooth e Wi-Fi específico para o app.

Quando um app solicita um canal Bluetooth e Wi-Fi específico na China, a solicitação falha silenciosamente. Nesse caso, uma caixa de diálogo aparece pedindo a confirmação do usuário. Se o usuário confirmar, o canal será aberto. Isso acontece todas as vezes, e não apenas no primeiro uso. BluetoothAdapter.enable() ou WifiManager.setEnabled(true) é chamado.

Observação: para que um app destinado ao Android 10 (nível 29 da API) ou versões mais recentes possa chamar WifiManager.setEnabled(), ele precisa ser um app do sistema ou um controlador de política de dispositivo (DPC).

Modo de análise de permissão

Os dispositivos Wear OS na China são executados no modo de análise de permissão, o que impõe alguns limites para o uso de apps com o elemento targetApiLevel definido 23 ou anterior: Considere os seguintes limites:

  • Embora as permissões sejam concedidas na instalação, quando um app com um targetApiLevel anterior ao 23 é inicializado pela primeira vez, uma caixa de diálogo aparece, pedindo ao usuário para confirmar as permissões desse app.
  • Os componente do app, como broadcast receivers, serviços e atividades, não respondem aos respectivos eventos antes do primeiro uso do app.

Por esse motivo, recomendamos que você use o targetApiLevel 23 ou mais recente e adote as práticas recomendadas de permissões do app.

Usar outras APIs do Google Play Services

Se o app usa outras APIs Google Play Services, e não a API Wearable, ele precisa conferir se essas APIs estão disponíveis para uso durante a execução e responder corretamente. Há duas formas de verificar a disponibilidade das APIs Google Play Services:

  1. Use uma instância de GoogleApiClient separada para se conectar a outras APIs. Essa interface contém callbacks para informar ao app se a conexão funcionou ou falhou. Em caso de falha na conexão, o ConnectionResult mostra API_UNAVAILABLE. Para saber mais sobre como processar falhas de conexão, consulte Acessar APIs do Google.
  2. Use o método addApiIfAvailable() do GoogleApiClient.Builder para se conectar às APIs necessárias. Depois que o callback onConnected() for acionado, use o método hasConnectedApi() para garantir que cada uma das APIs necessárias esteja conectada corretamente.

Distribuir apps na China

Para um melhor alcance de usuários do Wear OS na China, você pode distribuir seus apps em app stores para Wear OS de terceiros (links em chinês):