Индикаторы конфиденциальности

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

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

App-op отслеживает как статус активности, так и количество отдельных вызовов API, а также взаимодействует с индикаторами микрофона и камеры в Android 12, чтобы показать пользователям, когда приложения получили доступ к данным аудио и камеры на их устройствах. Когда пользователи нажимают на индикаторы микрофона или камеры, они видят, какие приложения получили доступ к их данным. Эта функция является обязательной для всех OEM-производителей.

Требования к видимости индикатора

Вот требования к индикаторам микрофона и камеры на устройствах под управлением Android 12 и выше:

  • Индикаторы должны отображаться в строке состояния и сохранять наивысший визуальный приоритет (например, располагаться в крайнем правом положении в правом верхнем углу).
  • Индикаторы должны постоянно находиться в одном и том же месте и не должны блокироваться приложением при его запуске.
  • Оба индикатора должны быть зеленого цвета (или изменение зеленого цвета) в цвете.
  • Нажатие одной или оба индикатора должны оказывать уведомление affordance приложение атрибуции , которая делает следующее:
    • Отображает название приложения, использующего микрофон и (или) камеру
    • Отображает название приложения, которое использовало микрофон и (или) камеру в течение последних 15 секунд.
    • Принимает пользователь на страницу разрешения приложения в настройках

Использование и особенности

В Android 12 пользовательский интерфейс различает текущие и недавние использования. Использование считается «активным», если оно либо помечено системой как «запущенное», либо прошло менее 5 секунд.

  • Значки в строке состояния отображаются каждый раз, когда приложение имеет доступ к микрофону или камере, доступ к которому зависит от пользователя.
  • Пользователи могут щелкнуть эти значки и увидеть, какие приложения используют микрофон, камеру или и то, и другое.

Microphone and camera in-use indicators showing that access is active

Рисунок 1. Микрофон и камера в использовании индикаторов , показывающие активный доступ (верхний правый угол)

Доступ считается активным, пока отображаются индикаторы. Сначала отображается значок, затем он переходит в точку, которая сохраняется до закрытия или закрытия приложения.

Когда пользователь касается индикаторов, открывается диалоговое окно, показывающее, что приложение в настоящее время использует камеру, микрофон или и то, и другое.

Indicators for both active and recent access, and whether the access was from camera or microphone

Рисунок 2. Активные и недавние индикаторы доступа

Изображение на рисунок 2 показывает активные индикаторы доступа , когда данные были доступны в течение последних 5 секунд, работающее приложением.

Последние индикаторы доступа показывают, что приложение получало доступ к данным в течение предыдущих 15 секунд, но приложение неактивно. Все активные приложения отображаются в диалоговом окне, но только одно приложение отображается как источник недавнего доступа, даже если более одного приложения обращались к данным в течение предшествующего 15-секундного периода времени. Представление доступа остается замороженным, пока пользователь не закроет диалоговое окно с уведомлением.

Доставить и включить

PermissionManager класс предоставляет метод для заполнения диалогового окна, который находится в системном интерфейсе.

  • Система UI реагирует на переключатель конфигурации устройства: privacy/mic_camera_indicators_enabled .
  • Переключатель необходим, потому что есть два отдельных средства доставки в таком порядке:
    1. Доставлять.
    2. Давать возможность.
  • System UI не должен вылетать , если метод в PermissionManager не может обеспечить необходимые данные.

Технологический процесс

Функциональность индикатора разрешений состоит из трех основных частей:

  • Приложения
  • Индикаторы (обрабатываются SystemUI)
  • Способ определить, какие приложения используют данные

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

Process flow for Permission Indicator functions

Рисунок 3. Компоненты системы и (UI) , переходы текут

Пронумерованные переходы на рисунке 3, описаны ниже:

1 Приложение запрашивает личные данные из системы.

2- система проверяет права доступа. Если разрешения разрешены, система уведомляет поставщика данных и отмечает использование в приложениях.

3- Поставщик данных предоставляет данные в приложение.

4-5 Пользователь нажимает на значки. Системный интерфейс запрашивает данные от PermissionManager и представляет диалог с пользователем.

Детали процесса

  1. Приложения используют микрофон и камеру, вызывая AppOpsManager.startOp , stopOp , и (или) noteOp . Это создает записи приложения на системном сервере.
  2. System UI прослушивает новое приложение-OPS , используя AppOpsManager.OnOpActiveChangedInternalListener и OnOpNotedListener слушателей. Когда новое использование приходит (через вызов либо startOp или noteOp ), то система проверяет пользовательский интерфейс , что использование является приложением в системе.
  3. Если системный интерфейс проверяет использование системного приложения, и если используется микрофон, системный интерфейс проверяет, отключен ли микрофон.
  4. Если системный интерфейс проверяет использование несистемного приложения (и, для использования микрофона, микрофон включен; для использования камеры, когда камера включена), отображается значок, отражающий такое использование.

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

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

Из-за этого изменения в Android 12 и более поздних версиях некоторые приложения должны либо изменить свое поведение, либо реализовать особое поведение.

Телефония должна обеспечивать использование разрешений (для учета отдельного стека микрофонов, используемого при телефонных звонках) при работе с приложением Android Google Search (AGSA) и Google Mobile Services (GMS).