Criar apps Wear OS para a China

Ao criar apps Wear OS para a China, você precisa contabilizar os celulares sem Google Play Services pré-instalado. Esta página contém alterações comuns que os desenvolvedores internacionais podem 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 compatibilidade mundial com a API Fused Location Provider e a API Data Layer. Os desenvolvedores precisam usar essa versão caso utilizem essas APIs. Em outras situações, essa dependência é opcional.

Embora o Google Play Services agora contenha novas APIs para apps para Wear OS, os apps para Wear OS para a China precisam continuar usando APIs relacionadas a GoogleApiClient. Consulte Acessar a API Wearable.

API Fused Location Provider

Se você usa a API Fused Location Provider, precisa incluir a seguinte dependência no arquivo build.gradle do módulo do Wear:

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

API Data Layer

Importante: o uso da API Data Layer não é mais recomendado desde o Wear 2.0. Isso porque agora os apps podem acessar a Internet diretamente, o que simplifica o desenvolvimento de código. Além disso, dispositivos Wear pareados com iOS não são compatíveis com a API Data Layer.

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

    dependencies {
        ...

        compile 'com.google.android.gms:play-services-wearable:10.2.0'

        ...

    }
    

Além disso, você precisa adicionar a seguinte linha ao arquivo build.gradle do seu módulo móvel. Substitua a dependência do Google Play Services por uma referência à versão 10.2.0.

    dependencies {
        ...

        compile 'com.google.android.gms:play-services-wearable:10.2.0'

    }
    

Autenticação

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

Se você precisar de autenticação, recomendamos usar o OAuth 2.0 ou, como medida alternativa, uma entrada no dispositivo. Você também tem a opção de passar um token de segurança com a Camada de dados. No entanto, usar a Camada de dados não é recomendado, já que ela não é compatível com dispositivos Wear OS pareados com dispositivos iOS.

Notificações com ponte

Notificações com ponte estão indisponíveis na China. As notificações por smartphone serão enviadas para o Wear OS apenas se o dispositivo Wear estiver conectado ao smartphone via Bluetooth.

Compatibilidade com coordenadas de localização e mapeamento

Use o FusedLocationProvider para detectar a localização do usuário na China, da mesma forma que no restante do mundo. Isso garante que seu app considere as melhores informações, independentemente do hardware do smartwatch e da plataforma do smartphone a que o smartwatch está pareado. Além disso, haverá benefícios de otimização de bateria incorporados na plataforma Wear OS.

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

Compatibilidade com o Google Fit

As funcionalidades 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á-las sem fornecer uma credencial de usuário.

Compatibilidade com emulador

Você pode usar a versão chinesa da imagem do emulador do Wear OS para testar seus apps. Ela é compatível com Android Studio 3.0 e posteriores.

Para testar seus apps na versão chinesa do emulador:

  1. Verifique se você instalou a versão 26.1.2 do Android Emulator.
  2. Faça o download das imagens do Wear OS para China no gerenciador do SDK.
  3. Escolha usar a imagem do Wear OS para China ao criar um perfil do AVD.
  4. Execute o emulador do Wear OS para China no desenvolvimento.

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.

Se um app solicitar um canal de Bluetooth e Wi-Fi específico para app na China, a solicitação falhará silenciosamente. Uma caixa de diálogo pop-up será exibida solicitando a confirmação do usuário. Se o usuário confirmar, o canal será aberto. Isso acontece toda vez (ou seja, não apenas no primeiro uso) que BluetoothAdapter.enable() ou WifiManager.setEnabled(true) é chamado.

Observação: para que um app voltado ao Android 10 (API de nível 29) ou versões mais recentes chame WifiManager.setEnabled(), ele precisa ser um app do sistema ou um controlador de política de dispositivo (DPC, na sigla em inglês).

Modo de análise de permissão

Os dispositivos Wear OS para China são executados no Permission Review Mode, o que impõe alguns limites quanto ao modo como os apps com um targetApiLevel menor que 23 podem ser usados:

  • Embora as permissões sejam concedidas na instalação, quando um app com um targetApiLevel menor que 23 é aberto pela primeira vez, uma caixa de diálogo aparece, pedindo ao usuário para confirmar as permissões desse app.
  • Todos os componentes do app, como broadcast receivers, serviços, atividades etc., não responderiam aos eventos correspondentes antes do primeiro uso do app.

Como resultado, é altamente recomendável que você use um targetApiLevel 23 ou superior e adote as práticas recomendadas de permissões no tempo de execução.

Usar outras APIs Google Play Services

Caso seu app utilize APIs Google Play Services diferentes da API Wearable, ele precisa verificar se essas APIs estão disponíveis para uso durante o tempo de execução e responder adequadamente. Há duas formas de verificar a disponibilidade das APIs Google Play Services:

  1. Use uma instância de GoogleApiClient separada para conexão com outras APIs. Essa interface contém callbacks para alertar seu app sobre o sucesso ou a falha da conexão. Em caso de falha na conexão, o ConnectionResult exibirá a mensagem API_UNAVAILABLE. Para saber mais sobre como lidar com falhas de conexão, consulte Acessar as 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 alcançar com eficácia os usuários do Wear OS na China, você pode distribuir seus apps em app stores de terceiros para Wear OS: