Вопрос выводит на разговор о связи <uses-permission> и <uses-feature>.
Если в манифесте объявляется
<uses-permission>
, который требует наличие хардверной фичи, то Google Play неявно добавляет соответствующую <uses-feature>
в список используемых приложением фич и фильтрует приложение в поиске, как было описано в предыдущем посте.Например наличие
<uses-permission android:name="android.permission.CAMERA"/>
неявно добавляет <uses-feature android:name="android.hardware.camera"/>
, что значит приложение не будет доступно в Google Play для устройств без камеры. Это поведение нежелательно, когда наличие камеры необязательно для приложения и функциональность, использующая камеру, ограничивается динамически в коде для устройств без камеры. В таких случаях нужно явно объявить в манифесте, что фича необязательна, используя атрибут
required="false"
:<uses-feature android:name="android.hardware.camera" android:required="false" />
Важно знать про это поведение, потому что
permission
может быть добавлен неявно с обновлением какой-нибудь библиотеки, что вызовет неявное добавление <uses-feature>
, и пользователи приложения, устройства которых не имеют данную фичу, перестанут получать обновления.Список пермишенов, которые неявно добавляют фичи.
Как получить список фич, запрашиваемых вашим приложением