Filtrer la visibilité des packages sur Android
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Lorsqu'une application cible Android 11 (niveau d'API 30) ou version ultérieure et demande des informations sur les autres applications installées sur un appareil, le système filtre ces informations par défaut. Ce comportement de filtrage signifie que votre application ne peut pas détecter toutes les applications installées sur un appareil, ce qui permet de réduire les informations potentiellement sensibles auxquelles elle peut accéder mais dont elle n'a pas besoin pour traiter ses cas d'utilisation.
En outre, ce filtrage des packages permet aux plates-formes de téléchargement d'applications comme Google Play d'évaluer le degré de confidentialité et de sécurité que votre application garantit aux utilisateurs. Par exemple, Google Play considère la liste des applications installées comme des données utilisateur sensibles et personnelles.
Une visibilité limitée de l'application affecte les résultats renvoyés par les méthodes qui fournissent des informations sur d'autres applications telles que queryIntentActivities()
, getPackageInfo()
et getInstalledApplications()
.
Cette visibilité limitée affecte également les interactions explicites avec d'autres applications, comme le démarrage du service d'une autre application.
Certains packages sont visibles automatiquement. Votre application peut toujours détecter ces packages dans ses requêtes portant sur les autres applications installées. Pour afficher d'autres packages, indiquez que vous souhaitez une visibilité accrue des packages pour votre application à l'aide de l'élément <queries>
. La page des cas d'utilisation fournit des exemples sur la façon dont vous pouvez étendre la visibilité des packages de manière sélective. Les workflows qui y sont décrits vous permettent de réaliser des scénarios courants d'interaction avec les applications tout en protégeant la confidentialité des utilisateurs.
Dans les rares cas où l'élément <queries>
n'offre pas une visibilité adéquate sur les packages, vous pouvez utiliser l'autorisation QUERY_ALL_PACKAGES
. Si vous publiez votre application sur Google Play, l'utilisation de cette autorisation est soumise à approbation.
La page Tester le comportement de visibilité des packages propose des suggestions pour tester les changements de comportement en fonction de la visibilité des packages lorsque votre application repose sur des interactions avec d'autres applications.
Ressources supplémentaires
Pour en savoir plus sur la visibilité des packages sur Android, consultez les ressources suivantes :
Articles de blog
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]