Logotipo de Zephyrnet

Migrar a Android 10: cuando has comido demasiado postre

Fecha:


¡Ya salió Android 10! 🎉

La versión estable de Android 10 fue lanzado por Google en 3rd septiembre, 2019 y con él, apareció una gran cantidad de nuevas características para los usuarios de Android. 🥳

En este artículo, exploraremos brevemente las novedades para los desarrolladores y cómo pueden aprovechar las nuevas características y API de Android 10 para admitir sus aplicaciones existentes, y realizar una transición sin problemas al nuevo sistema operativo Android.

¿Qué pasa con el nombre, Android 10?

Como habrás notado, Android 10 se llama, bueno ... Android 10. No lleva el nombre de un postre o un dulce, como suelen ser las versiones de Android.

Si bien los nombres de los postres satisficieron a nuestros golosos, Google decidió mantenerlo simple con los números, ya que la mayoría de las veces, los nombres no eran realmente entendidos por todos en la comunidad global. Además, a los nuevos usuarios les resultó difícil realizar un seguimiento de las secuencias de la versión.

"Lollipop es el que vino después de KitKat, ¿verdad?"

"Entonces, ¿estás diciendo que hay dos versiones de Lollipop?"

"¿Se pronuncia Now-gat o Noo-jat?"

Entonces, después de esta confusión, Google decidió que todas las versiones de Android de aquí en adelante serán simplemente números antiguos.

¿Qué hay de nuevo en Android 10?

Hablemos brevemente sobre las nuevas funciones, API y cambios que ha traído Android 10:

5G Redes

Red de Android10 Migration 5g

Android 10 admite 5G para tener una conectividad súper rápida con menor latencia. También hay algunas clases nuevas para extender el soporte de 5G a los desarrolladores.

Esto significa que los desarrolladores ahora pueden verificar si un teléfono tiene conectividad 5G con la ayuda de TelephonyManager. Puede encontrar el resumen del paquete extendido esta página.

Veamos un fragmento de código básico de cómo verificar la conectividad 5G:

 val telephonyManager = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager // Requires the permission ACCESS_COARSE_LOCATION val cellInfo = telephonyManager.allCellInfo[0] // CellInfoNr is the newly-introduced class for 5G connectivity if (cellInfo is [CellInfoNr](https://developer.android.com/reference/android/telephony/CellInfoNr.html)) { // Device has 5G connectivity doSomething() }

Soporte plegable y multipantalla

Fuente: [Desarrolladores de Android] (https://developer.android.com/guide/topics/ui/foldables)Fuente: Android Developers

Android 10 ofrece más soporte para dispositivos plegables y pantallas secundarias.

Al desarrollar dispositivos plegables, los desarrolladores deben hacer uso de onResume() y onPause() métodos para manejar con gracia los cambios de estado de la interfaz de usuario, dos métodos en el ciclo de vida de la actividad en los que Android 10 aporta más mejoras para los plegables.

Android 10 también admite una mayor variedad de relaciones de aspecto de pantalla, ya que los dispositivos plegables pueden variar de un proveedor a otro. Aquí está la lista recomendada de relaciones de aspecto que necesita para probar su aplicación:

Fuente: [Desarrolladores de Android] (https://developer.android.com/guide/topics/ui/foldables)Fuente: Android Developers

Hasta Android 9.0 (Pie), si tenía dos aplicaciones ejecutándose una al lado de la otra en su teléfono, solo la aplicación en foco estaba en el Reanudado estado. La otra aplicación estaba en el pausa estado. Esto puede causar problemas si necesita algo para seguir sucediendo en la otra aplicación, incluso si está en pausa y fuera de foco.

Con Android 10, puede asegurarse de que su otra aplicación también esté en estado reanudado agregando esta etiqueta de metadatos dentro de la etiqueta de la aplicación en su archivo de manifiesto:

 <application> ... <meta-data android:name="android.allow_multiple_resumed_activities" android:value="true" /> ... </application>

Esta característica se llama currículum múltiple y significa que puede tener múltiples aplicaciones en el estado reanudado. También trae una nueva devolución de llamada del ciclo de vida llamada onTopResumedActivityChanged(), sobre el que puedes leer esta página.

Android 8.0 trajo soporte para múltiples pantallas, pero Android 10 lo extiende al admitir reanudación múltiple para múltiples actividades de la misma aplicación en múltiples pantallas. El recién agregado getDisplayContext() Método que proporciona el contexto de la pantalla actual para que los desarrolladores carguen recursos.

Puede leer sobre cómo usar la función de pantallas múltiples esta página.

Respuesta inteligente a través de notificaciones

Fuente: [Desarrolladores de Android] (https://developer.android.com/about/versions/10/highlights)Fuente: Android Developers

El modelo ML en el dispositivo funciona con Android 10 y sugiere acciones contextuales y respuestas inteligentes justo en las notificaciones en sí. Estas acciones contextuales podrían incluir intentos de otras aplicaciones, como abrir una ubicación a través de Google Maps, que se obtiene en un texto.

Esta es una característica realmente genial en la que usted, como desarrollador, realmente no tiene que hacer nada para obtenerla en su aplicación. Solo está allí de forma predeterminada en todos los dispositivos en Android 10.

Pero si desea deshabilitar esta función, puede llamar setAllowGeneratedReplies(false) de su Notification.Action.Buildery setAllowSystemGeneratedContextualActions(false) de su Notification.Builder.

Fuerza oscura

Fuente: [Desarrolladores de Android] (https://developer.android.com/about/versions/10/highlights)Fuente: Android Developers

Con versiones anteriores de Android, los desarrolladores han tenido que definir un DayNight tema que se extiende Theme.AppCompat.DayNight or Theme.MaterialComponents.DayNight en tu styles.xml archivo.

Pero con Android 10, puede forzar un tema oscuro de inmediato sin tener que definir un estilo explícito para su tema oscuro. Esto se conoce como Fuerza oscura.

Para hacer esto, solo necesita configurar forceDarkAllowed a true en el tema de tu aplicación:

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:forceDarkAllowed">true</item> </style>

También puede deshabilitar / habilitar Force Dark en vistas específicas también:

 myTextView.isForceDarkAllowed = false myOtherTextView.isForceDarkAllowed = true

Tenga en cuenta que Force Dark no funciona si su aplicación ya usa un tema oscuro (Theme.Material or Theme.AppCompat) o un DayNight tema. También asegúrese de probar su aplicación a fondo si está utilizando Force Dark.

Leer más sobre Force Dark esta página.

Navegación de gestos

La navegación por gestos es algo que quizás haya notado en el iPhone XR y iPhone XS, ¡y también llegará a Android 10!

La navegación gestual elimina la necesidad de los botones de la barra de navegación. Los usuarios pueden deslizar hacia arriba para cerrar la aplicación o deslizar hacia la derecha para volver a la pantalla anterior. Para aprovechar mejor esta función, le recomiendo configurar los siguientes valores en su styles.xml archivo:

 <!-- values-29/styles.xml: --> <style name="AppTheme" parent="..."> <item name="android:navigationBarColor">@android:color/transparent</item> <item name="android:statusBarColor">@android:color/transparent</item> </style>

Para diseñar su aplicación en modo de pantalla completa, configure la visibilidad de la IU del sistema de la siguiente manera:

 window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

Lea más sobre cómo manejar inserciones gestuales esta página.

Panel de configuración API

Con Android 10, los desarrolladores ahora pueden usar el Panel de configuración API para mostrar una interfaz de usuario flotante en la parte superior de su aplicación en ejecución para permitir a los usuarios acceder rápidamente a configuraciones comunes como conectividad a Internet, NFC, Wi-Fi y volumen.

Usar esto es bastante simple: simplemente disparas un Intent con una de las acciones del Panel de configuración API:

 val intent = Intent([ACTION_WIFI](https://developer.android.com/reference/android/provider/Settings.Panel.html#ACTION_WIFI)) startActivity(intent)

Esto muestra una IU flotante que permite a los usuarios cambiar la configuración de Wi-Fi.

Permiso de ubicación en segundo plano

A partir de Android 10, si su aplicación necesita la ubicación de su usuario, incluso cuando está en segundo plano, deberá incluir la nueva ACCESS_BACKGROUND_LOCATION permiso en su aplicación:

 <manifest ... > <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> **<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />** </manifest>

También debe solicitar este permiso durante el tiempo de ejecución al igual que normalmente solicitaría otros permisos peligrosos. Al solicitar este permiso, el usuario muestra el siguiente cuadro de diálogo:

Fuente: [Desarrolladores de Android] (https://developer.android.com/about/versions/10/highlights)Fuente: Android Developers

Esto permite a los usuarios:

  • Dale permiso a tu aplicación para usar la ubicación todo el tiempo, incluso en segundo plano

  • Otorgue permiso a su aplicación para usar la ubicación solo cuando la aplicación esté en uso

  • Denegar por completo el permiso de ubicación

Puedes leer más sobre estos cambios de permisos de ubicación esta página.

Conclusión

Esto cubre los principales cambios y características en Android 10. También hay un puñado de otros cambios de seguridad y comportamiento.

Haga que su aplicación sea compatible con Android 10 hoy y mantenga felices a sus usuarios. 😁

Lea más sobre todos los cambios aquí:

Android 10 para desarrolladores | Desarrolladores de Android

Fuente: https://www.codementor.io/blog/android-10-migrate -7rjkctjfn2

punto_img

Información más reciente

punto_img