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
- Programar alarmes exatos não é permitido por padrão
- As transmissões registradas em contexto são enfileiradas enquanto os apps são armazenados em cache
- Novo motivo para um app ser colocado no bucket de espera restrito
Mudanças do Android 14 que afetam os apps direcionados ao nível 34 da API
- Os tipos de serviço em primeiro plano são obrigatórios
- Aplicação da permissão
BLUETOOTH_CONNECT
emBluetoothAdapter
JobScheduler
reforça o callback e o comportamento da rede- Os broadcast receivers registrados no ambiente de execução precisam ser exportados explicitamente ou não exportar
- Carregamento de código dinâmico mais seguro
- Mais restrições para o início de atividades em segundo plano
- O usuário pode conceder acesso parcial a fotos e vídeos
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Mudanças de privacidade no Android 10
- Conectar-se a um servidor GATT {:#connect}
- Comunicação em segundo plano