اندروید 11 نحوه درخواست و تعامل برنامه ها با برنامه های دیگری را که کاربر روی دستگاه نصب کرده تغییر می دهد. با استفاده از المنت <queries> برنامه ها می توانند مجموعه بسته های دیگری را که می توانند به آنها دسترسی پیدا کنند ، تعریف کنند. با استفاده از این عنصر به سیستم می فهمانید کدام بسته های دیگر را برای برنامه شما قابل مشاهده می کند تا اصل حداقل امتیاز بیشتر رعایت میشود. و به فروشگاه های برنامه مانند Google Play کمک می کند تا حریم خصوصی و امنیتی را که برنامه شما برای کاربران فراهم می کند ارزیابی کنند.
اگر شما اندروید 11 یا بالاتر را هدف قرار داده باشید ممکن است که نیاز داشته باشید المنت <queries> را به فایل androidmanifest خود اضافه کنید.
در المنت <queries> می توانید بسته ها را با نام, امضای intent یا مرجع ارائه دهنده خدمات مشخص کنید.
نکته : برخی از پکیج ها بصورت اتوماتیک برای برنامه شما قابل مشاهده می باشند, حتی اگر اندروید 11 یا بالاتر را هدف قرار بدهید.
تست تغییرات
برای تست اینکه این رفتار ها بر اپلیکیشن شما تاثیر گذاشته است یا خیر, مراحل زیر رو دنبال کنید :
- اندروید استودیو نسخه ی 3.6.1 یا بالاتر را نصب کنید.
- آخرین نسخه ی Gradle را که اندروید استودیو پشتیبانی میکند نصب کنید.
- targetSdkVersion در پروژه خود را بر روی 30 قرار بدهید.
- المنت <queries> را به فایل مانیفیست خود اضافه نکید.
- متد getInstalledApplications() یا getInstalledPackages() فراخوانی کنید, هر دو متد باید یک لیست فیلتر شده را برگردانند.
- ببینید کدام یک از ویژگی های اپلیکیشن شما کار نمیکند.
- برای رفع عدم کار کرد صحیح آن ویژگی های ورودی درست را برای المنت <queries> در نظر بگیرید.