Recomendamos que os apps do Wear OS funcionem de maneira independente de smartphones para que os usuários possam realizar tarefas no relógio sem precisar ter um smartphone Android ou iOS. Caso seu app do Wear OS precise de interação com o smartphone para funcionar, marque esse app como dependente e adote medidas para garantir que o usuário tenha acesso à versão para smartphone.
Planejar seu app
Você pode usar o Android App Bundle para gerar automaticamente pacotes de aplicativo Android (APKs) otimizados para a configuração de cada dispositivo com as mesmas informações de produto. Isso permite que o usuário faça o download apenas do código e dos recursos necessários para executar seu app.
Para mais informações sobre como configurar seu app para distribuição na Google Play Store, consulte Empacotar e distribuir apps do Wear e o guia de introdução dos Android App Bundles.
Para novos apps, o nível desejado da API precisa ser 30 ou mais recente. Para mais informações, consulte
Atender ao requisito de
nível desejado da API do Google Play. Defina o
targetSdkVersion
como o nível 30 da API (Wear OS 3) para garantir que o app funcione bem
na versão mais recente da plataforma.
Para informações sobre solicitações de rede e acesso a redes de alta largura de banda, consulte Acesso à rede e sincronização no Wear OS.
Definir um aplicativo como um app do Wear OS
Defina a tag
<uses-feature>
no arquivo de manifesto do Android do app.
Para indicar que esse é um app para smartwatch, adicione uma entrada como esta:
<manifest> ... <uses-feature android:name="android.hardware.type.watch" /> ... </manifest>
Identificar um app como independente ou dependente
Um app para smartwatch pode ser considerado independente ou dependente:
- Independente: é um app completamente independente que não precisa de um app para smartphones para funcionar. atributos de machine learning. Embora a opção "Abrir no smartphone" comandos são aceitáveis, o app precisa oferecer alternativas significa para os usuários completarem uma função do aplicativo, como um link curto ou QR code, sem depender em um smartphone conectado.
- Dependente: apps que dependem do app instalado no smartphone ou em outro dispositivo para recursos principais. Essa opção é melhor para aplicativos quando eles não podem fornecer um meio alternativo, como um QR code ou link curto, para concluir uma função principal do app, como a autenticação.
Observação:mesmo para apps não independentes, os usuários podem instalar o Wear OS antes do app para dispositivos móveis. Portanto, se o app para Wear OS detectar dispositivo portátil próximo não tiver o app complementar necessário, avisar o usuário para instalar o app complementar.
O Google valida a precisão do status independente de um app durante esse processo disponibilização. Esse valor afeta a visibilidade dos apps na Play Store em dispositivos sem tethering, como os Wear OS que não estão pareados com dispositivos portáteis dispositivos. Apps não independentes e apps que os desenvolvedores usam incorretamente designados como "independentes" e não estão disponíveis para os usuários dispositivos.
Para declarar que o app do Wear OS é independente ou dependente, defina o valor de com.google.android.wearable.standalone
do elemento
meta-data
no arquivo de manifesto do Android.
Se o app para smartwatch for completamente independente, transmita essa informação
à Google Play Store, definindo o
valor de com.google.android.wearable.standalone
como true
:
<application> ... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" /> ... </application>
Se o app para smartwatch for dependente e precisar de outro para executar os recursos principais,
defina o valor de com.google.android.wearable.standalone
como
false
. Isso indica que o app para smartwatch precisa de outro dispositivo para funcionar, mas não
afeta a promoção do app na Google Play Store.
Observação:
mesmo que o valor de com.google.android.wearable.standalone
seja
false
, o app
para smartwatch pode ser instalado antes do app para smartphone.
Assim, se o app para smartwatch
detectar que o app necessário não está instalado no telefone associado,
conforme descrito nesta página,
ele vai pedir para o usuário instalar a versão para smartphone.
Código compartilhado e armazenamento de dados
É possível compartilhar código entre um app do Wear OS e um app para smartphone. Por exemplo, o código comum para redes pode ficar em uma biblioteca compartilhada.
Se preferir, você pode colocar os códigos específicos de cada formato em módulos separados.
É possível usar APIs de armazenamento padrão do Android para armazenar dados localmente, da mesma forma que em um smartphone. Por exemplo, você pode usar as APIs SharedPreferences ou a biblioteca de persistência Room.
Detectar seu app em outro dispositivo
Seu app para smartwatch pode detectar se o app para smartphone correspondente está disponível e vice-versa.
Seu app para smartphone ou smartwatch pode usar o
CapabilityClient
para anunciar ao dispositivo pareado que a
versão correspondente está instalada. Isso pode ser feito de modo estático ou dinâmico.
Quando um app
está em um nó na rede do Wear OS de um usuário (como em um smartphone, um relógio pareado ou
na nuvem), o CapabilityClient
permite que ele
seja detectado. Para mais informações, consulte
Anunciar recursos.
Se um dos seus apps não puder detectar o outro, solicite que o usuário abra a página "Detalhes do app" na Play Store no dispositivo que não foi detectado. Essa é uma solução para apps para smartwatches que só funcionam adequadamente com a presença do app para smartphones associado.
É necessário verificar se a Play Store está disponível no dispositivo, já que nem todos os smartphones (como iPhones) usam a Play Store.
As próximas seções descrevem as práticas recomendadas para dois casos:
- O app independente para smartwatch precisa do app para smartphone.
- O app para smartphone precisa do app independente para smartwatch.
Você também pode consultar o
Exemplo de ajuda do Datalayer, que mostra como usar a
Bibliotecas auxiliares do Datalayer, parte do
Horologist. Esses assistentes permitem monitorar a conexão entre um dispositivo portátil
e um dispositivo Wear OS.
Para mais informações
sobre as classes descritas na seção a seguir,
Referência da API Wear OS.
Essa referência também inclui informações sobre o
PhoneTypeHelper
, que contém um
getPhoneDeviceType()
, que permite
O app para Wear OS verifica se o smartphone associado é um dispositivo Android ou iOS.
Especificar nomes de recursos para detectar apps
Especifique uma string exclusiva para o nome do recurso no
arquivo res/values/wear.xml
do app correspondente
a cada tipo de dispositivo (relógio ou smartphone).
Por exemplo, no seu módulo para dispositivos móveis, o arquivo wear.xml
pode incluir o seguinte:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
No módulo do Wear OS, o arquivo wear.xml
inclui um valor
diferente para o nome do recurso,
como no exemplo abaixo:
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
Para mais informações, consulte Anunciar recursos.
Detecção de app e abertura de um URL em um smartwatch
O app para smartwatch pode detectar se o smartphone associado tem o app para smartphone instalado. Para isso, siga estas etapas:
-
Use o
CapabilityClient
para verificar se o app para smartphone está instalado no dispositivo pareado. Para mais informações, consulte a Exemplo de ajuda do Datalayer (link em inglês) no GitHub. -
Se o app para smartphone não estiver instalado, use o método
PhoneDeviceType.getPhoneDeviceType()
para verificar o tipo de smartphone. Consulte a próxima seção para mais informações. -
Se
PhoneDeviceType.DEVICE_TYPE_ANDROID
for retornado, significa que o smartphone é Android. ChameRemoteActivityHelper.startRemoteActivity()
no dispositivo Wear OS para abrir a Play Store no smartphone. Use o URI comercial do app para smartphone, que pode ser diferente do URI do Wear. Por exemplo, use um URI comercial como:market://details?id=com.example.android.wearable.wear.finddevices
-
Se
PhoneDeviceType.DEVICE_TYPE_IOS
for retornado, significa que o smartphone é iOS e não tem a Play Store. Nesse caso, chameRemoteActivityHelper.startRemoteActivity()
no dispositivo Wear OS para abrir a App Store no iPhone. Você pode especificar o URL do iTunes do seu app, por exemplo,https://itunes.apple.com/us/app/yourappname
.No Wear OS, não é possível determinar programaticamente se o app para smartphone está instalado em um iPhone. Como prática recomendada, forneça um mecanismo para que o usuário abra a App Store manualmente.
Observação: use a API RemoteActivityHelper
descrita anteriormente para
especificar que um comando do relógio abra todos os URLs no smartphone,
sem precisar do app para smartphone.
Detalhes para detectar o tipo de smartphone pareado
O snippet abaixo usa o método getPhoneDeviceType()
para
verificar o tipo de smartphone pareado com o relógio:
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
O valor retornado pelo método getPhoneDeviceType()
é um dos seguintes:
Valor de retorno | Descrição |
---|---|
DEVICE_TYPE_ANDROID
|
O telefone associado é um dispositivo Android. |
DEVICE_TYPE_IOS
|
O telefone associado é um dispositivo iOS. |
DEVICE_TYPE_UNKNOWN
|
O telefone associado é um dispositivo desconhecido. |
DEVICE_TYPE_ERROR
|
Ocorreu um erro ao determinar o tipo do smartphone pareado. Faça outra verificação mais tarde. |
Detecção de app a partir de um smartphone Android
O smartphone Android pode detectar se os dispositivos Wear OS do usuário têm seu app para smartwatch instalado. Para isso, siga estas etapas:
-
Com o
NodeClient
, encontre todos os smartwatches conectados ao smartphone do usuário. Para mais informações, consulte a Exemplo de ajuda do Datalayer (link em inglês) no GitHub. -
Use o
CapabilityClient
para conferir qual dos relógios do usuário têm seu app instalado. -
Se o app não estiver instalado em todos os relógios do usuário, permita que ele
abra a Play Store nos demais dispositivos Wear OS pelo smartphone, usando
o método
RemoteActivityHelper.startRemoteActivity()
. Use o URI comercial do app do Wear OS, que pode ser diferente do URI do app para smartphone. Por exemplo, use um URI comercial como:market://details?id=com.example.android.wearable.wear.finddevices
Dados de localização para smartwatches pareados com iPhones
No caso de relógios pareados com iPhones, use o provedor de localização combinada (FLP) para receber os dados de localização no relógio. Para mais informações, consulte Detectar a localização no Wear OS.
Se o telefone associado estiver disponível, o FLP o usará para acessar os dados de localização.
Coletar apenas os dados necessários
De maneira geral, extraia apenas os dados necessários da Internet. Caso contrário, você pode introduzir latência, uso de memória e uso de bateria desnecessários.
Quando o relógio está conectado via Bluetooth LE, é possível que o app tenha acesso a uma largura de banda de apenas 4 kilobytes por segundo, dependendo do modelo. Portanto, as etapas abaixo são recomendadas:
- Confira se dados extras, necessários apenas para apps para smartphones, estão sendo coletados nas solicitações e respostas da rede.
- Reduza imagens grandes antes de enviá-las por uma rede para o relógio.
Para casos em que uma rede de alta largura de banda for necessária, consulte Acesso à rede de alta largura de banda.
Outros exemplos de código
A O exemplo de ajuda do Datalayer (link em inglês) demonstra com mais detalhes o uso das APIs abordadas nesta página.