Filtro della visibilità dei pacchetti su Android
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Quando un'app ha come target Android 11 (livello API 30) o versioni successive e cerca
informazioni sulle altre app installate su un dispositivo, il sistema
filtra queste informazioni per impostazione predefinita. Questo comportamento di filtraggio significa che la tua app
non può rilevare tutte le app installate su un dispositivo, il che contribuisce a ridurre al minimo le
informazioni potenzialmente sensibili a cui la tua app può accedere, ma di cui non ha bisogno
per soddisfare i suoi casi d'uso.
Inoltre, la visibilità dei pacchetti filtrati aiuta gli store
di app come Google Play a valutare la privacy e la sicurezza che la tua app offre
agli utenti. Ad esempio, Google Play considera l'elenco delle app installate come
dati utente personali e
sensibili.
La visibilità limitata delle app influisce sui risultati restituiti dai metodi che forniscono
informazioni su altre app, ad esempio
queryIntentActivities()
,
getPackageInfo()
e
getInstalledApplications()
.
La visibilità limitata influisce anche sulle interazioni esplicite con altre app, ad esempio l'avvio del servizio di un'altra app.
Alcuni pacchetti sono visibili
automaticamente. La tua app può sempre
rilevare questi pacchetti nelle query per altre app installate. Per visualizzare altri
pacchetti, dichiara l'esigenza dell'app relativa a una maggiore visibilità
del pacchetto usando l'elemento
<queries>
. La pagina Casi
d'uso fornisce esempi di come
puoi espandere selettivamente la visibilità dei pacchetti. I flussi di lavoro descritti consentono
di soddisfare scenari di interazione comuni con le app proteggendo al contempo la privacy degli utenti.
Nei rari casi in cui l'elemento <queries>
non fornisce una visibilità adeguata del pacchetto, puoi utilizzare l'autorizzazione QUERY_ALL_PACKAGES
. Se pubblichi la tua
app su Google Play, l'utilizzo di questa autorizzazione da parte dell'app è
soggetto ad approvazione.
La pagina relativa al
test del comportamento di visibilità dei pacchetti
offre suggerimenti su come testare le modifiche del comportamento in base alla visibilità dei pacchetti
quando la tua app si basa sulle interazioni con altre app.
Risorse aggiuntive
Per saperne di più sulla visibilità dei pacchetti su Android, consulta i seguenti materiali:
Post del blog
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-08-21 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-21 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."]]