Skip to content

Android 11 - resolveActivity() agora retorna null #2

@WKnak

Description

@WKnak

Como o foco principal deste aplicativo é abrir o canal do Youtube e o Aplicativo do Youtube, é importante notar que a partir do Android 11 o Google adotou uma política de "não bisbilhotagem", desta forma os apps não podem facilmente saber se outro está instalado.

Todavia, ainda é possível adicionar no manifest entradas dos nomes do aplicativo que você quer consultar, tornando pelo menos o seu app mais transparente com o que acess. Mas torna-se inviável adicionar todos os apps, pois podem existir versões do Youtube "normal", Youtube Go, etc.

Por isso recomenda-se não mais utilizar o resolveActivity(), e portando chamar diretamente o startActivity() e, em caso de erro, adaptar o intent para outra URI ou ainda, por fim mostrar aviso de que não existe um app instalado pra completar a ação.

Em todo caso, para o App do Youtube, o código abaixo corrige o erro que apresenta no Android 11:

    <!-- AndroidManifest.xml -->

    <queries>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
        </intent>
        <package android:name="com.google.android.youtube" />
    </queries>

    <application>
           ....
    </application>   

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions