Tutoriales

Cómo solucionar el problema de la intención en Android 11 (R) – API 30 o superior

Hace unos meses creé una sencilla aplicación de Android para mi uso personal que luego fue compartida en mi círculo.

Uno de los usuarios de WhatsApp me dijo: «Oye Gagan, tu aplicación» Enviar mensaje de WhatsApp «ha dejado de funcionar». Por favor mira esto; Lo necesito para mi trabajo.

Le dije: “¿Puede decirme cuál es el problema? Sinceramente, ya no uso esta aplicación, así que no sé qué pasó con la aplicación ”.

Él respondió de inmediato: cuando hago clic en «Enviar mensaje», no pide WhatsApp, ni muestra una lista de aplicaciones.

Muy bien, obtendré el código de mi aplicación y me pondré en contacto contigo en breve con la aplicación que funciona.

Intent no funciona en Android 11 o superior

Después de estar sentado durante horas, finalmente arreglé la aplicación y voy a compartir el método. Como tú sabes, Android 11 se centra principalmente en el contexto de seguridad.

Debido a esto, puede decir que agregaron un nivel de privilegio separado para acciones de intención más seguras para evitar compensaciones de seguridad no deseadas.

En la versión anterior de Android, la acción de intención enumera todas las aplicaciones disponibles para ciertas tareas sin realizar ningún cambio, pero a partir de ahora debe poner el nombre del paquete en AndroidManifest.xml.

Y este método se denomina filtrado de visibilidad de paquetes.

En la próxima mitad veremos cómo implementarlo en su proyecto de Android.

Método de trabajo intencionado en Android 11 o superior

Para solucionar este problema, tenemos las siguientes opciones: o .

  • : – La forma preferida de enumerar las aplicaciones disponibles es abrir AndroidManifest.xml y agregue la línea resaltada con una lista de nombres de paquetes que desea mostrar.
  • El paquete respectivo se menciona explícitamente dentro de la etiqueta de consulta para que se indique cuando se requiere una acción intencional.
  • Este método muestra el único paquete enumerado en los Firmar.
  • Luego ejecute la aplicación para ver los cambios.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
**********
**********
<!-- Specific apps you interact with, eg: -->
<queries>
    <package android:name="com.whatsapp" />
</queries>
**********
**********
<application
        android:allowBackup="true"
  • : – Este parámetro enumera todas las aplicaciones disponibles para tareas compatibles.
  • Es similar a una versión anterior de Android.
  • Te aconsejo mejor con un. ir Día de un comportamiento más seguro.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
**********
**********
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" />
**********
**********
<application
        android:allowBackup="true"

Lea esto: – Cómo corregir la excepción «Open Failed: EACCES (Permission Denied)» en Android

resumen

Eso es todo lo que hay que hacer para solucionar el problema de la intención en Android 11 (R) API 30 o posterior.

Si utiliza los tag, utilice el método try-and-catch para una aplicación más robusta y a prueba de fallos.

Espero que esto resuelva tu problema. Si el problema persiste, no dude en contactarnos.

Si tienes algo que compartir o te perdiste algo que ayudaría a otros, compártelo en una sección de comentarios.

¿Te gusta lo que lees? Compártelo con otros.

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