Generalidades

Migrar aplicaciones a Android12.En este artículo, explicaré… | Por Huma Imam | Mar 2022

En este artículo, explicaré la migración de aplicaciones de Android a Android 12 (API 31), este artículo se basa únicamente en mi experiencia personal al intentar implementar la nueva API de pantalla de bienvenida de Android.

Migrar aplicaciones a Android12En este articulo explicare Por Huma

Antes de pasar a la implementación, veamos por qué tuvimos que migrar nuestra aplicación a Android 12,

Con cada lanzamiento de Android, se introducen nuevas funciones y cambios de comportamiento, diseñados para hacer que Android sea más útil, más seguro y más eficiente. En muchos casos, su aplicación funcionará exactamente como se esperaba desde el primer momento, mientras que en otros casos es posible que deba actualizar su aplicación para adaptarse a los cambios de la plataforma.

Ha habido muchos cambios de comportamiento en Android 12, algunos de los cuales se detallan a continuación.

  • Estirar el efecto de desplazamiento.
  • pantalla de bienvenida de la aplicación
  • Análisis de intención de red
  • Vistas previas de la cámara en la pantalla grande y más.

echar un vistazo Cambios en el comportamiento de Android 12 leer más:)

Paso 1: cambie compileSdkVersion a 31,

Cambie su compileSdkVersion a 31 Si recientemente actualizó su aplicación, podría ser 30.Para hacer esto, necesitamos establecer estos valores en build.gradle valor de nivel de API SDK de actualización de archivos

android {
compileSdkVersion 31

defaultConfig {
targetSdkVersion 31
minSdkVersion 21
...
}
}

aquí, compilarSdkVersion Define qué versión del SDK de Android usará gradle para compilar su aplicación.

Versión del SDK de destino es un atributo que le dice al sistema en qué versión de Android se diseñó y probó la aplicación.

Paso 2: sincroniza y ejecuta tu aplicación

Actualizado build.gradletodas las nuevas restricciones de Android 12 se aplicarán a su aplicación

Migrar aplicaciones a Android12En este articulo explicare Por Huma

Paso 3: exportar componentes

Las exportaciones deben especificarse explícitamente con una aplicación dirigida a la API 31, debe configurar android:exported Etiquetas para cualquier actividad, servicio o receptor de transmisión que use un filtro de intención y deba accederse desde fuera de nuestra aplicación (a través del sistema operativo u otras aplicaciones)

...
android:exported="true”>
...
...
android:exported="false">
...
...
android:exported="true">
...
...
android:exported="false”>
...
...
android:exported="true”
/>

Si no agrega esta etiqueta en el componente, la aplicación no funcionará, seguirá mostrando este error en dispositivos Android 12 y superiores,

1646870440 944 Migrar aplicaciones a Android12En este articulo explicare Por Huma

Si recibe este error a pesar de agregar esta etiqueta en el componente, asegúrese de haberla agregado a su actividad cuando use una biblioteca de terceros en su aplicación.

En mi caso, utilicé «com.invitereferrals.invitereferrals.AppUpdateReceiver» en mi aplicación, por lo que tuve que agregar esta etiqueta en este receptor y en mi manifiesto.

android:exported="true"/>

Paso 4: Variabilidad de intención pendiente

desde Android12 Después de eso, debemos establecer la mutabilidad para cada uso de la intención pendiente, si creemos que la versión mínima admitida de nuestra aplicación es 23, entonces podemos establecer el indicador inmutable o mutable para el objeto de intención pendiente.
Consideremos un ejemplo del uso de PendingIntent en mi aplicación, es decir, NotificationManager

val pendingFlag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_ONE_SHOT
else PendingIntent.FLAG_ONE_SHOTval pendingIntent = PendingIntent.getActivity(context, uniqueId /* Request code */, intent,
pendingFlag)

val notificationBuilder = NotificationCompat.Builder(context, uniqueId.toString())
.setContentTitle(title)
.setContentIntent(pendingIntent)

val notificationManager = context.getSystemService(NOTIFICATION_SERVICE) as NotificationManager

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

Paso 5: actualice las dependencias de terceros

Tendrá que actualizar alguna biblioteca de terceros y usar una versión estable de la biblioteca para deshacerse del bloqueo debido a IllegalArgumentException, en mi caso tuve que actualizar las siguientes dependencias

implementation 'androidx.room:room-ktx:2.4.1'
implementation 'androidx.room:room-compiler:2.4.1'

Ahora estamos listos para las funciones actualizadas y los cambios de comportamiento introducidos en Android 12.

¡Gracias por seguir conmigo hasta el final y espero poder compartir información valiosa con ustedes! ! , si te gusta mi artículo, ¡aplaude y sígueme para más!

LEER  Un RecyclerView para todas las cuadrículas y listas | Por Joao Foltran | Ene 2022

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba