Com o Wear OS by Google, criar layouts para um smartwatch é semelhante a criá-los para um smartphone, exceto pelo fato de que você precisa considerar o tamanho e a nitidez da tela ao projetá-los. Não espere uma boa experiência após fazer a portabilidade da funcionalidade e da IU de um app para smartphones para um smartwatch.
Crie layouts personalizados apenas quando necessário. Leia as diretrizes Projetar para o Wear OS para saber informações sobre como criar ótimos apps para smartwatches.
Criar notificações personalizadas
Em geral, você precisa criar notificações no smartphone e deixar que elas sejam sincronizadas automaticamente com o wearable. Isso permite criar as notificações uma só vez e fazer com que elas apareçam em muitos tipos de dispositivos (não apenas smartwatches, mas no Android Auto e Android TV) sem ter que recriá-las para diferentes formatos.
Se os estilos de notificação padrão não funcionarem para você (como NotificationCompat.BigTextStyle
ou NotificationCompat.InboxStyle
), exiba uma atividade com um layout personalizado. Você só pode criar e emitir notificações personalizadas no smartwatch, e o sistema não sincroniza essas notificações com o smartphone.
Observação: ao criar notificações personalizadas no smartwatch, é possível usar as APIs de notificação padrão (API de nível 20) em vez da Biblioteca de Suporte.
Para criar uma notificação personalizada:
- Crie um layout e o defina como a visualização de conteúdo para a atividade que você quer que seja exibida.
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { ... setContentView(R.layout.notification_activity) }
Java
public void onCreate(Bundle bundle){ ... setContentView(R.layout.notification_activity); }
-
Defina as propriedades necessárias para a atividade no manifesto do Android a fim de permitir que a atividade seja exibida no processo do fluxo de contexto do smartwatch. Você precisa declarar que a atividade é exportável, é incorporável e tem uma afinidade de tarefa vazia. Também recomendamos definir o tema como
Theme.DeviceDefault.Light
. Exemplo:<activity android:name="com.example.MyDisplayActivity" android:exported="true" android:allowEmbedded="true" android:taskAffinity="" android:theme="@android:style/Theme.DeviceDefault.Light" />
-
Crie um
PendingIntent
para a atividade que você quer exibir. Exemplo:Kotlin
val notificationPendingIntent: PendingIntent = Intent(this, NotificationActivity::class.java).let { notificationIntent -> PendingIntent.getActivity( this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT ) }
Java
Intent notificationIntent = new Intent(this, NotificationActivity.class); PendingIntent notificationPendingIntent = PendingIntent.getActivity( this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
-
Crie um
Notification
e chamesetDisplayIntent()
fornecendo oPendingIntent
. O sistema usa essePendingIntent
para iniciar a atividade quando os usuários veem sua notificação. -
Emita a notificação usando o método
notify()
.Observação: no Wear 1.x, quando uma notificação é exibida na tela inicial, o sistema a exibe com um modelo padrão gerado a partir dos dados semânticos da notificação. Esse modelo funciona bem em todos os mostradores de relógio. Assim, quando os usuários deslizarem a notificação para cima, eles verão a atividade personalizada para a notificação.
Criar layouts com a Biblioteca de IUs do Wear
A Biblioteca de IU do Wear é incluída automaticamente quando você cria seu app para smartwatches com o Android Studio Project Wizard. Também é possível adicionar essa biblioteca ao arquivo build.gradle
com a seguinte declaração de dependência:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'androidx.wear:wear:1.0.0' compile 'com.google.android.gms:play-services-wearable:+' }
Essa biblioteca ajuda a criar IUs projetadas para smartwatches. Para mais informações, consulte Criar IUs personalizadas para dispositivos Wear.
Aqui estão algumas das classes principais:
-
BoxInsetLayout
-
Um objeto
FrameLayout
que reconhece o formato da tela e pode encaixar os filhos dele no quadrado central de uma tela redonda. -
ConfirmationActivity
- Uma atividade que exibe animações de confirmação depois que o usuário conclui uma ação.
-
AnimationSet
- Um grupo de animações que precisam ser executadas juntas.
-
CircularProgressLayout
- Um layout que fornece um timer de contagem regressiva circular em torno de uma visualização filha. Normalmente, usado como um timer automático para confirmar uma operação depois de um curto período.
-
SnapHelper
-
SnapHelper
é compatível com o ajuste de um objetoRecyclerView
. -
PagerSnapHelper
-
Implementação da instância
SnapHelper
, que é compatível com ajustes do estilo de paginação na orientação vertical ou horizontal. -
AlertDialog
- Uma subclasse de Dialog que pode exibir um, dois ou três botões.
-
ProgressBar
- Exibe uma barra ao usuário, representando o quanto a operação progrediu. O aplicativo pode mudar o nível de progresso modificando o comprimento da barra à medida que avança.
-
WearableRecyclerView
-
Implementação específica para wearables da classe
RecyclerView
, usada para exibir listas roláveis de itens em dispositivos quadrados e redondos.
Referência de API da Biblioteca de IU do Wear
A documentação de referência explica como usar cada widget de IU em detalhes. Leia a documentação de referência da API Wear para saber mais informações sobre as classes acima.
Observação: recomendamos o uso do Android Studio para o desenvolvimento para Wear OS, uma vez que ele oferece configuração de projetos, inclusão de bibliotecas e conveniências de empacotamento.