Testar como o app processa mudanças de comportamento

A prévia para desenvolvedores do Wear OS 5 é baseada no Android 14 (nível 34 da API), que é uma versão mais recente em comparação com o Wear OS 4 (Android 13 ou nível 33 da API). Portanto, ao preparar seu app para Wear OS para uso na prévia para desenvolvedores do Wear OS 5, é necessário processar as mudanças de comportamento do sistema que afetam todos os apps no Android 14, bem como as mudanças em apps destinados ao Android 14.

Mudanças no Wear OS 5 que afetam todos os apps

As mudanças de comportamento abaixo afetam casos de uso e bibliotecas específicos do Wear OS. Essas mudanças afetam todos os apps executados no Wear OS 5, independente da versão do SDK de destino.

Painel de privacidade

A prévia para desenvolvedores do Wear OS 5 adiciona suporte ao Painel de privacidade, que foi lançado inicialmente em dispositivos móveis no Android 12.

O painel de privacidade oferece aos usuários uma visualização centralizada do uso de dados de cada app, incluindo os seguintes detalhes:

  • Os tipos de dados que estão sendo acessados, como localização e microfone.
  • Há quanto tempo esses tipos de dados foram acessados.

Com acesso a essas informações, os usuários podem tomar decisões mais informadas sobre quais apps ainda precisam ter acesso aos dados pessoais. Para manter a confiança do usuário, use os dados com responsabilidade e transparência ao coletar e usar dados do usuário.

A maioria das fontes de dados de complicação exige o uso do Formato do mostrador do relógio

Nas próximas versões do Wear OS, incluindo a prévia para desenvolvedores do Wear OS 5, os mostradores de relógio precisam usar o Formato do mostrador do relógio para oferecer suporte a complicações que contêm dados do usuário. Recomendamos atualizar o mostrador do relógio para usar o Formato do mostrador do relógio. Saiba mais sobre essas mudanças nas complicações.

Desativar temporariamente a mudança para fins de teste

Esse recurso é ativado por padrão. Para desativar a flag de recurso que corresponde a essa mudança para fins de teste, use o seguinte comando:

adb shell device_config put wear_services \
  com.google.wear.services.infra.flags.restrict_complications_flag false && \
  adb reboot

Mudanças no Wear OS 5 que afetam os apps destinados ao Android 14

As mudanças abaixo só vão afetar seu app se você atualizar a versão do SDK de destino para o Android 14, a versão em que a prévia para desenvolvedores do Wear OS 5 se baseia.

Os apps sempre ativados podem ficar em segundo plano

A partir da prévia para desenvolvedores do Wear OS 5, o sistema move os apps sempre ativados para o segundo plano depois de ficarem visíveis no modo ambiente por um determinado período. Os usuários podem definir o tempo limite nas configurações do sistema.

Se o app sempre ativado exibir informações sobre uma tarefa em andamento do usuário, por exemplo, reprodução de música ou uma sessão de treino, convém manter a atividade em andamento visível até que a tarefa termine. Para fazer isso, use a API Ongoing Activity para postar uma notificação em andamento vinculada à atividade sempre ativada.

Para que o sistema reconheça a atividade em andamento, a intent de toque da notificação em andamento precisa apontar para sua atividade sempre ativada, conforme mostrado no snippet de código abaixo:

// Create a pending intent that point to your always-on activity
val touchIntent =
    PendingIntent.getActivity(
        context,
        0,
        Intent(context, MyAlwaysOnActivity::class.java),
        PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
    )

val notificationBuilder =
    NotificationCompat.Builder(this, CHANNEL_ID)
    // ...
    .setOngoing(true)

val ongoingActivity =
    OngoingActivity.Builder(
        applicationContext, NOTIFICATION_ID, notificationBuilder
    )
    // ...
    .setTouchIntent(touchIntent)
    .build()

ongoingActivity.apply(applicationContext)

notificationManager.notify(
    NOTIFICATION_ID,
    notificationBuilder.build()
)

Desativar temporariamente a mudança para fins de teste

Esse recurso é ativado por padrão. Para desativar a flag de recurso que corresponde a essa mudança para fins de teste, use o seguinte comando:

adb shell device_config put wear_frameworks \
  com.google.android.clockwork.systemui.flags.ambiactive_components_expirable \
  false && adb reboot

Apps de gravação de exercícios precisam declarar um tipo de serviço em primeiro plano

Se o app gravar exercício como parte da sessão de treino de um usuário, você vai precisar especificar o tipo de serviço em primeiro plano health no serviço em primeiro plano que invoca ExerciseClient. Além disso, se o app puder monitorar informações de localização durante a sessão de treino, também será necessário especificar o tipo de serviço em primeiro plano location:

<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <application ...>
      <!-- If your app can also monitor location information, use
           android:foregroundServiceType="health|location" instead. -->
      <service
          android:name=".MyExerciseSessionRecorder"
          android:foregroundServiceType="health">
      </service>
    </application>
</manifest>

Alguns dispositivos fora do pulso ficam desbloqueados por mais tempo

Em dispositivos compatíveis que executam a prévia para desenvolvedores do Wear OS 5, o sistema detecta se o usuário está usando o dispositivo no pulso. Se o usuário desativar a detecção de pulso e tirar o dispositivo do pulso, o sistema vai manter o dispositivo desbloqueado por mais tempo.

Se o app exigir um nível mais alto de segurança, por exemplo, ao exibir dados potencialmente sensíveis ou particulares, primeiro confira se a detecção de pulso está ativada:

val wristDetectionEnabled =
        isWristDetectionAutoLockingEnabled(applicationContext)

Se o valor de retorno desse método for false, solicite que o usuário faça login em uma conta no app antes de exibir conteúdo específico do usuário.

O conteúdo arrastável pode sobrepor os pontos de ativação dos gestos do sistema

A partir da prévia para desenvolvedores do Wear OS 5, o sistema trata os gestos de eventos de movimento separadamente da navegação por gestos usada na interface do sistema.

Se a interface do app incluir grandes espaços arrastáveis que se sobrepõem às áreas de gestos do sistema, talvez seja necessário adicionar retângulos de exclusão de gestos do sistema para essas visualizações. Para fazer isso, chame setSystemGestureExclusionRects() para instruir a interface do sistema a ignorar os gestos de navegação nas áreas especificadas. Isso é parecido com como você lida com gestos conflitantes do app no seu app para dispositivos móveis para oferecer uma experiência de interface de ponta a ponta.

Você pode usar a API setSystemGestureExclusionRects() para que a interface do sistema responda a solicitações de gestos de maneira diferente. Por exemplo, a interface do sistema pode mostrar outras dicas, como uma barra horizontal, para confirmar a intenção do usuário.

Dimensionamento de fonte não linear

A partir da prévia para desenvolvedores do Wear OS 5, o sistema oferece suporte a um dimensionamento de fonte mais suave, principalmente nos casos em que os usuários escolhem tamanhos de fonte maiores, em componentes de interface baseados em visualização.

Restrições a intents implícitas e pendentes

Se você usa blocos no app, confira se as intents são afetadas pelas restrições a intents implícitas e pendentes.

Algumas notificações ainda não podem ser dispensadas

Ao usar a versão para dispositivos portáteis do app em um dispositivo com o Android 14 (nível 34 da API) ou mais recente, os usuários podem dispensar notificações que, em versões anteriores, não eram dispensáveis.

No entanto, na prévia para desenvolvedores do Wear OS 5, essas notificações ainda não podem ser dispensadas.

Outras mudanças do Android 14

As mudanças abaixo do Android 14 têm maior probabilidade de afetar seu app para Wear OS.

Mudanças do Android 14 que afetam todos os apps

Mudanças do Android 14 que afetam os apps direcionados ao nível 34 da API