Filtragem da visibilidade de pacotes no Android
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Quando um app é direcionado ao Android 11 (API de nível 30) ou mais recente e consulta
informações sobre os outros apps instalados em um dispositivo, o sistema
filtra essas informações por padrão. Esse comportamento significa que o app
não detecta todos os apps instalados em um dispositivo, o que ajuda a minimizar as
informações possivelmente sensíveis que o app pode acessar, mas não precisa para
atender aos casos de uso.
Além disso, a visibilidade dos pacotes filtrados ajuda as app
stores, como o Google Play, a avaliar a privacidade e segurança oferecidas pelo app
aos usuários. Por exemplo, o Google Play considera a lista de apps instalados como
dados pessoais e confidenciais
do usuário.
A visibilidade limitada do app afeta os resultados retornados por métodos que fornecem
informações sobre outros apps, como
queryIntentActivities()
,
getPackageInfo()
e
getInstalledApplications()
.
A visibilidade limitada também afeta as interações explícitas com outros apps, como
iniciar o serviço de outro app.
Alguns pacotes ficam visíveis
automaticamente. Seu app pode sempre
ver esses pacotes nas consultas a outros apps instalados. Para ver outros
pacotes, declare a necessidade do app de aumentar a visibilidade
de pacotes usando o
elemento <queries>
. A página de casos
de uso mostra exemplos de como você
pode ampliar a visibilidade de pacotes de maneira seletiva. Os fluxos de trabalho descritos aqui permitem
que você atenda a cenários comuns de interação com o app e protegem a privacidade do usuário.
Nos raros casos em que o elemento <queries>
não fornece visibilidade de pacotes
adequada, você pode usar a permissão QUERY_ALL_PACKAGES
. Se você publicar o
app no Google Play, o uso dessa permissão pelo app vai estar
sujeito a aprovação.
A página sobre
como testar o comportamento da visibilidade de pacotes
oferece sugestões de como testar mudanças de comportamento com base na visibilidade de pacotes
quando o app depende de interações com outros apps.
Outros recursos
Para saber mais sobre a visibilidade de pacotes no Android, veja os seguintes materiais:
Postagens do blog
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-27 UTC."],[],[],null,["# Package visibility filtering on Android\n\nWhen an app targets Android 11 (API level 30) or higher and queries for\ninformation about the other apps that are installed on a device, the system\nfilters this information by default. This filtering behavior means that your app\ncan't detect all the apps installed on a device, which helps minimize the\npotentially sensitive information that your app can access but doesn't need\nto fulfill its use cases.\n\nAlso, filtered package visibility helps app\nstores like Google Play assess the privacy and security that your app provides\nfor users. For example, Google Play considers the list of installed apps to be\n[personal and sensitive user\ndata](https://support.google.com/googleplay/android-developer/answer/10144311#zippy=%2Cexamples-of-common-violations).\n\nLimited app visibility affects the results returned by methods that give\ninformation about other apps, such as\n[`queryIntentActivities()`](/reference/android/content/pm/PackageManager#queryIntentActivities(android.content.Intent,%20int)),\n[`getPackageInfo()`](/reference/android/content/pm/PackageManager#getPackageInfo(java.lang.String,%20int)),\nand\n[`getInstalledApplications()`](/reference/android/content/pm/PackageManager#getInstalledApplications(int)).\nThe limited visibility also affects explicit interactions with other apps, such\nas starting another app's service.\n\nSome packages are [visible\nautomatically](/training/package-visibility/automatic). Your app can always\ndetect these packages in its queries for other installed apps. To view other\npackages, [declare your app's need for increased package\nvisibility](/training/package-visibility/declaring) using the\n[`\u003cqueries\u003e`](/guide/topics/manifest/queries-element) element. The [use\ncases](/training/package-visibility/use-cases) page provides examples of how you\ncan selectively expand package visibility. The workflows described there allow\nyou to fulfill common app interaction scenarios while protecting user privacy.\n\nIn the rare cases where the `\u003cqueries\u003e` element doesn't provide adequate package\nvisibility, you can use the `QUERY_ALL_PACKAGES` permission. If you publish your\napp on Google Play, your app's use of this permission is\n[subject to approval](https://support.google.com/googleplay/android-developer/answer/10158779).\n\nThe page about\n[testing package visibility behavior](/training/package-visibility/testing)\noffers suggestions for how to test behavior changes based on package visibility\nwhen your app relies on interactions with other apps.\n\nAdditional resources\n--------------------\n\nTo learn more about package visibility on Android, view the following materials:\n\n### Blog posts\n\n- [Package visibility in\n Android 11](https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9), available on Medium."]]