#android
Вопрос:
Я нахожусь в процессе обновления приложения до Android 11.
В Android 11 появилась фильтрация видимости пакетов. В статье говорится, что некоторые пакеты автоматически отображаются для всех приложений.
Некоторые системные пакеты, такие как поставщик мультимедиа, реализующие основные функции Android.
Мое приложение использует следующие намерения-действия:
MediaStore.ACTION_IMAGE_CAPTURE
Intent.ACTION_GET_CONTENT
Intent.ACTION_PICK
Intent.ACTION_SEND
Intent.ACTION_SENDTO
Если я не добавлю вышеуказанные намерения queries
, для них не будут открыты несистемные приложения, верно?
Есть еще одно изменение в действиях с намерением СМИ, которое меня смущает.
Начиная с Android 11, только предустановленные системные приложения для камер могут реагировать на следующие действия
Например, на телефонах Samsung есть это приложение для галереи с именем пакета com.sec.android.gallery3d
. Аналогичным образом, у других производителей также могут быть разные приложения для камеры. Означает ли это, что мне не нужно добавлять queries
объявление, так как это пользовательское приложение для камеры/галереи будет считаться системным приложением?
Я протестировал эти случаи на эмуляторе Android 11. У меня нет приложения галереи Samsung в качестве системного приложения в эмуляторе. Так что я не уверен, как это получится.
queries.xml
<queries>
<!-- Finds Snapchat App -->
<package android:name="com.snapchat.android" />
<!-- Finds all apps that can receive photos -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="image/*" />
</intent>
<!-- Finds all apps that can receive videos -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="video/*" />
</intent>
</queries>