فیلتر مشاهده بسته در اندروید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
وقتی برنامهای اندروید 11 (سطح API 30) یا بالاتر را هدف قرار میدهد و اطلاعات مربوط به سایر برنامههای نصب شده روی دستگاه را جستجو میکند، سیستم بهطور پیشفرض این اطلاعات را فیلتر میکند. این رفتار فیلترینگ به این معنی است که برنامه شما نمیتواند همه برنامههای نصب شده روی دستگاه را شناسایی کند، که به حداقل رساندن اطلاعات حساس بالقوهای که برنامه شما میتواند به آنها دسترسی داشته باشد، اما نیازی به انجام موارد استفاده ندارد، کمک میکند.
همچنین، قابلیت مشاهده بسته فیلتر شده به فروشگاههای برنامه مانند Google Play کمک میکند حریم خصوصی و امنیتی را که برنامه شما برای کاربران فراهم میکند ارزیابی کنند. به عنوان مثال، Google Play لیست برنامه های نصب شده را به عنوان داده های شخصی و حساس کاربر در نظر می گیرد.
قابلیت مشاهده محدود برنامه بر نتایج برگردانده شده توسط روش هایی تأثیر می گذارد که اطلاعات مربوط به سایر برنامه ها را ارائه می دهند، مانند queryIntentActivities()
، getPackageInfo()
و getInstalledApplications()
. دید محدود همچنین بر تعاملات صریح با سایر برنامهها، مانند راهاندازی سرویس برنامه دیگر، تأثیر میگذارد.
برخی از بسته ها به صورت خودکار قابل مشاهده هستند. برنامه شما همیشه می تواند این بسته ها را در جستارهای خود برای سایر برنامه های نصب شده شناسایی کند. برای مشاهده سایر بستهها، نیاز برنامه خود را به افزایش دید بسته با استفاده از عنصر <queries>
اعلام کنید. صفحه موارد استفاده نمونه هایی از نحوه گسترش انتخابی دید بسته را ارائه می دهد. گردشهای کاری که در آنجا توضیح داده شده است به شما امکان میدهد همزمان با محافظت از حریم خصوصی کاربر، سناریوهای تعامل برنامههای رایج را انجام دهید.
در موارد نادری که عنصر <queries>
قابلیت مشاهده بسته کافی را فراهم نمی کند، می توانید از مجوز QUERY_ALL_PACKAGES
استفاده کنید. اگر برنامه خود را در Google Play منتشر کنید، استفاده برنامه شما از این مجوز منوط به تأیید است.
صفحه مربوط به آزمایش رفتار نمایان بودن بسته پیشنهادهایی برای نحوه آزمایش تغییرات رفتار بر اساس نمایان بودن بسته زمانی که برنامه شما متکی به تعامل با برنامههای دیگر است، ارائه میکند.
منابع اضافی
برای کسب اطلاعات بیشتر در مورد قابلیت مشاهده بسته در Android، مطالب زیر را مشاهده کنید:
پست های وبلاگ
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-27 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]