Фильтрация приложений в Google Play Market


  Манифест     Фильтр     Функции       Разрешения       XML  

Разрешения, влияющие на требования к функциям

Некоторые константы аппаратных и программных функций стали доступны для приложений после соответствующего API; например, функция android.hardware.bluetooth была добавлена в Android 2.2 (уровень API 8), но API Bluetooth, на который она ссылается, был добавлен в Android 2.0 (уровень API 5). Из-за этого некоторые приложения могли использовать API до того, как у них появилась возможность объявить, что им требуется API с помощью системы <uses-feature>.

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

Например, приложения, использующие Bluetooth, должны запрашивать для устаревших приложений разрешение BLUETOOTH в элементе <uses-permission>/. Google Play предполагает, что объявление разрешения означает, что базовая функция android.hardware.bluetooth требуется приложению, поэтому настраивает фильтрацию на основе этой функции.

Обратите внимание, что объявления <uses-feature>, включая любой объявленный атрибут android:required, всегда имеют приоритет над функциями , которые подразумеваются разрешениями, перечисленными в этой таблице.

Для любого из этих разрешений можно отключить фильтрацию на основе подразумеваемой функции (implied feature), явно объявив функцию в элементе <uses-feature> с атрибутом required, установленным на false.

Например, чтобы отключить фильтрацию на основе разрешения CAMERA, достаточно добавить в файл манифеста следующие объявления <uses-feature>:

<uses-feature android:name="android.hardware.camera" android:required="false" />

<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

Если приложение предназначено для Android 5.0 (уровень API 21) или выше и использует разрешение ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION для получения обновлений местоположения из сети или GPS соответственно, то должно быть явно указано, что приложение использует аппаратные функции android.hardware.location.network или android.hardware.location.gps

В таблице ниже перечислены разрешения, которые определяют требования к функциям, эквивалентные объявленным в элементах <uses-feature>. Строки таблицы содержат пары разрешение-функция (функции).

Например, BLUETOOTH - android.hardware.bluetooth здесь:
BLUETOOTH - это разрешение
android.hardware.bluetooth - это одразумеваемые требования к функциям


Bluetooth

  • BLUETOOTH - android.hardware.bluetooth

  • BLUETOOTH_ADMIN - android.hardware.bluetooth

    Камера

  • CAMERA - android.hardware.camera, android.hardware.camera.autofocus

    Местонахождение

  • ACCESS_MOCK_LOCATION - android.hardware.location

  • ACCESS_LOCATION_EXTRA_COMMANDS - android.hardware.location

  • INSTALL_LOCATION_PROVIDER - android.hardware.location

  • ACCESS_COARSE_LOCATION - android.hardware.location , android.hardware.location.network

  • ACCESS_FINE_LOCATION - android.hardware.location, android.hardware.location.gps

    Микрофон

  • RECORD_AUDIO - android.hardware.microphone

    Телефония

  • CALL_PHONE - android.hardware.telephony

  • CALL_PRIVILEGED - android.hardware.telephony

  • MODIFY_PHONE_STATE - android.hardware.telephony

  • PROCESS_OUTGOING_CALLS - android.hardware.telephony

  • READ_SMS - android.hardware.telephony

  • RECEIVE_SMS - android.hardware.telephony

  • RECEIVE_MMS - android.hardware.telephony

  • RECEIVE_WAP_PUSH - android.hardware.telephony

  • SEND_SMS - android.hardware.telephony

  • WRITE_APN_SETTINGS - android.hardware.telephony

  • WRITE_SMS - android.hardware.telephony

  • Wi-Fi

  • ACCESS_WIFI_STATE - android.hardware.wifi

  • CHANGE_WIFI_STATE - android.hardware.wifi

  • CHANGE_WIFI_MULTICAST_STATE - android.hardware.wifi