Android permission query all packages что это за программа

Android R Preview 1 представил новое разрешение под названием QUERY_ALL_PACKAGES . В документации к разрешению сказано следующее:

Разрешает запрос любого обычного приложения на устройстве, независимо от деклараций манифеста.

Кто-нибудь понял, что это на самом деле?

Я пробовал запустить на образе эмулятора следующее, и разрешение не повлияло ни на один из них:

  • packageManager.queryIntentActivities(intent, 0)
  • packageManager.getInstalledPackages(0)

user238753 14 мар ’20 в 07:19 2020-03-14 07:19
2020-03-14 07:19

4 ответа

Они покрывают это больше теперь, когда DP2 отсутствует.

Хотя я еще не тестировал этот аспект R DP2, похоже, что теперь ваше приложение не может узнать, какие еще приложения установлены, в целом. Приведенный пример queryIntentActivities() , но чтобы это действительно сработало, вам придется серьезно провести лоботомию PackageManager . Вы можете занести в белый список определенные пакеты и определенные структуры, чтобы попытаться обойтись этим в определенных случаях использования. И вот где загадочный QUERY_ALL_PACKAGES Разрешение, видимое в DP1, вступает в игру — это разрешение снимает эти новые ограничения. Учитывая предостережение «Ищите Google Play, чтобы предоставить рекомендации для приложений, которым требуется это разрешение», безопаснее всего предположить, что если вы попытаетесь его использовать, в конечном итоге вы будете забанены ботом в Play Store.

Итак, вы можете захотеть повторить свои эксперименты на DP2. Я планирую сделать то же самое в ближайшие недели.

Request Install Package Permission Removed

user115145 20 мар ’20 в 02:39 2020-03-20 02:39
2020-03-20 02:39

Даже когда разрешение QUERY_ALL_PACKAGES добавлен, вам еще нужно добавить фильтр к вашему AndroidManifest .

Например, для приложения запуска это может быть:

user7658607 08 мар ’21 в 10:52 2021-03-08 10:52
2021-03-08 10:52

Читайте также:
Wireless terminal для чего эта программа

В Android 11 внесены изменения, связанные с видимостью пакетов. Эти изменения влияют на приложения, только если они нацелены на Android 11. Дополнительные сведения об этих изменениях см. В руководствах по видимости пакетов на Android.

В моем случае Cordova-android 10.1.1, targetSdkVersion 30

user7889763 08 окт ’21 в 06:41 2021-10-08 06:41
2021-10-08 06:41

Если приложение пытается связаться с другим приложением, это разрешение следует добавить для Android 11+, иначе эти приложения не будут работать / запускаться.

Источник: stackru.com

Как добавить в manifest разрешение QUERY_ALL_PACKAGES

В документации говориться добавить разрешение в манифест, чтобы получить все установленные приложения на устройстве начиная с Android 11 и выше, я добавил но подчеркивает красным и пишет
A declaration should generally be used instead of QUERY_ALL_PACKAGES; see https://g.co/dev/packagevisibility for details

Query all packages permission


Что я делаю не так ?

Отслеживать
17.8k 11 11 золотых знаков 24 24 серебряных знака 51 51 бронзовый знак
задан 25 янв в 13:35
1 1 1 бронзовый знак

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Android 11 и выше используют новую систему разрешений, которая называется «Declarations». Вместо разрешения QUERY_ALL_PACKAGES надо использовать объявление packageVisibility.

На месте com.example.mypackage укажите имя вашего пакета.

После этого, нужно запросить разрешение packageVisibility у пользователя при запуске приложения, с помощью метода requestPermissions().

Источник: ru.stackoverflow.com

Как получить список установленных приложений в Android 11

Как получить список установленных приложений в Android 11

В Android 11 мы видим множество обновлений, улучшающих конфиденциальность. Если ваше приложение использует эти методы для получения списка установленных приложений на устройстве пользователя, вам придется внести некоторые изменения в свой код для устройств, использующих Android 11. В этом сообщении блога мы обсудим все наши варианты.

Читайте также:
3d cad программы что это

Если вы уже запрашиваете приложения, установленные пользователем, следующий фрагмент кода будет вам знаком. Так вы можете получить список установленных приложений пользователя.

val packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA) for (packageInfo in packages) Log.d(TAG, «Package name:» + packageInfo.packageName) >

Теперь для ваших пользователей, использующих Android 11, код останется прежним, но он не будет работать, если вы не добавите дополнительные элементы в AndroidManifest.

Существует 3 различных способа запроса установленных пользователем приложений в Android 11. Давайте посмотрим на них:

Запросить определенные пакеты

Если вы уже знаете, какие приложения вы хотите запросить, просто укажите имена пакетов внутри элемента в. AndroidManifest

manifest package=»ru.inceptive.app»> queries> package android_name=»com.fake.app» /> package android_name=»com.fake.game» /> queries> . manifest>

Запрос с использованием фильтра намерений

Если вы не знаете все имена пакетов приложений, которые вы хотите запросить, но есть набор приложений с аналогичными функциями, которые вы хотите запросить, вы можете использовать фильтр намерений внутри элемента в соответствии с вашими требованиями, например было сделано в приведенном ниже фрагменте кода.

manifest package=»ru.inceptive.app»> queries> intent> action android_name=»android.intent.action.SEND» /> data android_mimeType=»image/jpeg» /> intent> queries> . manifest>

Элемент выглядит так, но есть несколько отличий. элемент имеет следующие ограничения:

Запросить все приложения

Если вы хотите запросить все приложения пользователя, как делали раньше, вам необходимо включить разрешение в файл. Это разрешение, и оно предоставляется, как только приложение будет установлено. QUERY_ALL_PACKAGES

uses-permission android_name=»android.permission.QUERY_ALL_PACKAGES»/>

В идеале следует запрашивать наименьшее количество пакетов и уважать конфиденциальность пользователя. В большинстве случаев это разрешение не требуется, только для таких приложений, как пусковые установки, имеет смысл запрашивать у пользователя разрешение на запрос всех установленных приложений на его телефоне.

Теги:
  • Как получить список установленных приложений в Android 11
  • Android 11
Читайте также:
Программа лояльности манзана что это

Источник: inceptive.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru