Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

638
Visualizações
Considere agregar una declaración de consultas a su manifiesto cuando llame a este método cuando use intent.resolveActivity en Android 11

Tengo una función de extensión para abrir una intención para mis actividades:

 fun Activity.openIntent(action: String?, type: String?, uri: Uri?) { Intent() .apply { action?.let { this.action = it } uri?.let { this.data = it } type?.let { this.type = it } } .also { intent -> packageManager?.let { if (intent.resolveActivity(it) != null) startActivity(intent) else showToast(R.string.application_not_found) } } }

Mi targetSdkVersion es 30 . Me da una advertencia en intent.resolveActivity(it) :

Considere agregar una declaración de consultas a su manifiesto cuando llame a este método.

Entonces, ¿qué debo hacer para resolver esta advertencia?

over 4 years ago · Hanz Gallego
3 Respostas
Responde à pergunta

0

La solución más simple es deshacerse de resolveActivity() . Reemplazar:

 packageManager?.let { if (intent.resolveActivity(it) != null) startActivity(intent) else showToast(R.string.application_not_found) }

con:

 try { startActivity(intent) } catch (ex: ActivityNotFoundException) { showToast(R.string.application_not_found) }

Esto le da el mismo resultado con un rendimiento un poco mejor y eliminará la advertencia.

Otra opción sería agregar el permiso QUERY_ALL_PACKAGES . Esto puede hacer que te excluyan de Play Store.

De lo contrario, deberá:

  • Cree una lista de todas las posibles openIntent() que su aplicación puede realizar

  • Agregue un elemento <queries> a su manifiesto que enumere todas las posibles estructuras de Intent que desea poder usar con resolveActivity()

  • Repita este proceso periódicamente, en caso de que agregue nuevos escenarios para openIntent()

over 4 years ago · Hanz Gallego Relatório

0

Entonces, al iniciar Android 11 (es decir, si su aplicación apunta a Android 11), no todas las aplicaciones serán visibles para su aplicación. Algunas aplicaciones son visibles de forma predeterminada, pero para acceder a otras aplicaciones a través de su aplicación, deberá declarar queries en su manifiesto; de lo contrario, su aplicación no podrá acceder a ellas. Puedes leer sobre eso aquí .

Entonces, si su aplicación tiene como objetivo Android 11 y es para acceder a una aplicación que puede no estar visible de forma predeterminada, querrá agregar queries para ellos en el archivo de manifiesto.

En su caso, esta advertencia no es aplicable, ya que creo que está utilizando intentos implícitos para abrir otras aplicaciones. Mediante intentos implícitos, se puede acceder a otras aplicaciones independientemente de la visibilidad de la aplicación. Si su aplicación tiene como objetivo Android 10 o inferior, puede suprimir la advertencia ya que todas las aplicaciones están visibles de forma predeterminada.

Para suprimir la advertencia de pelusa, puede:

  1. Agregue la anotación de supresión, así:
 @SuppressLint("QueryPermissionsNeeded") fun Activity.openIntent(action: String?, type: String?, uri: Uri?): Activity {
  1. Agregue lo siguiente a su bloque de Android en el archivo gradle de compilación del módulo de su aplicación:
 lintOptions { ignore "QueryPermissionsNeeded" }
over 4 years ago · Hanz Gallego Relatório

0

Reemplazar

 if (intent.resolveActivity(it) != null)

con

 if (it.resolveActivity(intent, 0) != null)

y la advertencia se habrá ido.

over 4 years ago · Hanz Gallego Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda