AppOpsManager Класс

Определение

App-ops используются для двух целей: контроля доступа и отслеживания.

[Android.Runtime.Register("android/app/AppOpsManager", DoNotGenerateAcw=true)]
public class AppOpsManager : Java.Lang.Object
[<Android.Runtime.Register("android/app/AppOpsManager", DoNotGenerateAcw=true)>]
type AppOpsManager = class
    inherit Object
Наследование
AppOpsManager
Атрибуты

Комментарии

App-ops используются для двух целей: контроля доступа и отслеживания.

App-ops охватывают широкий спектр функциональных возможностей, от помощи в управлении доступом к разрешениям среды выполнения и отслеживании до отслеживания потребления заряда батареи.

<h2>Управление доступом</h2>

App-ops можно управлять для каждого пользовательского интерфейса или для каждого пакета. Какой из них используется, зависит от поставщика API, поддерживающего этот объект app-op. Для любой операции, связанной с безопасностью или конфиденциальностью, поставщик должен управлять app-op для каждого пользовательского интерфейса, так как вся безопасность и конфиденциальность основана на пользовательском интерфейсе в Android.

Для управления доступом app-op можно задать режим: <dl><dt#MODE_DEFAULT<>dd>Поведение по умолчанию может отличаться от app-op или app-op <dt<>#MODE_ALLOWEDdd>Разрешить доступ <dt#MODE_IGNORED><dd>Не разрешать доступ, т. е. не выполнять запрошенное действие или возвращать нет или заполнители данных <dt#MODE_ERRORED<>dd>Throw a SecurityException при доступе. Это можно подавить с помощью ...noThrow метода для проверка режима </dl.>

Поставщики API должны проверка режиме, возвращаемом параметром #noteOp , если они разрешают доступ к операциям, защищенным app-op. #unsafeCheckOpследует использовать для проверка режиме, если доступ не предоставлен. Например, его можно использовать для отображения состояния операции приложения в пользовательском интерфейсе или при проверке состояния перед последующим вызовом #noteOp .

Если операция ссылается на период времени (например, сеанс записи звука), поставщик API должен использовать #startOp и #finishOp вместо #noteOp.

<h3>Разрешения среды выполнения и app-ops</h3>

Каждое разрешение среды выполнения, определенное платформой (помимо модификаторов фона), имеет связанную операцию приложения, которая используется для отслеживания, но и для автоматического сбоя. Т. е. если разрешение среды выполнения отказано, вызывающий SecurityExceptionобъект получает , но если разрешение предоставлено и app-op является #MODE_IGNORED , то вызывающие стороны получают поведение заполнителей, например обратные вызовы расположения не выполняются.

<h3>Разрешения< app-op/h3>

Разрешения app-ops — это разрешения, определяемые платформой, которые можно переопределить. Проверка безопасности для разрешений app-op должны проверка #MODE_DEFAULT default состояние предоставления разрешений. Если для состояния app-op задано значение #MODE_ALLOWED или #MODE_IGNORED должно быть установлено состояние app-op, а не состояние предоставления разрешений.

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

<h2>Tracking</h2>

App-ops отслеживают многие важные события, включая все доступы к API-интерфейсам, защищенным разрешениями среды выполнения. Это делается путем отслеживания того, когда операция приложения была #noteOp noted или #startOp started. Отслеживаемые данные могут считываться только компонентами системы.

<b>Только #noteOp/#startOp отслеживаются; #unsafeCheckOp не отслеживается. Поэтому важно в конечном итоге вызвать #noteOp или #startOp при предоставлении доступа к защищенным операциям или данным.</B>

Некоторые приложения перенаправляют доступ к другим приложениям. Например, приложение может получить расположение от поставщика расположения системы, а затем отправить его в 3-е приложение. В этом случае приложение, передавающее данные, должно вызвать #noteProxyOp для передачи сигналов о прокси-сервере доступа. Это также может быть целесообразно в пределах одного приложения, если доступ перенаправлен между двумя частями , помеченными различными тегами атрибуции.

Приложение может зарегистрировать , OnOpNotedCallback чтобы получать сведения о том, какие обращения к нему отслеживает система. Так как каждое разрешение среды выполнения связано с app-op, этот API особенно полезен для приложения, которое хочет найти непредвиденные частные данные.

Документация по Java для android.app.AppOpsManager.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

AppOpsManager(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Поля

ModeAllowed
Устаревшие..

Результат из #checkOp, #noteOp, : #startOpданному вызывающему объекту разрешено выполнять заданную операцию.

ModeDefault
Устаревшие..

Результат из #checkOp, #noteOp, #startOp: данный вызывающий объект должен использовать свой проверка безопасности по умолчанию.

ModeErrored
Устаревшие..

Результат из #checkOpNoThrow, #noteOpNoThrow, : #startOpNoThrowданному вызывающему объекту не разрешено выполнять данную операцию, и эта попытка должна привести к неустранимой ошибке, обычно .SecurityException

ModeForeground
Устаревшие..

Специальный режим, который означает "разрешить только в том случае, если приложение находится на переднем плане.

ModeIgnored
Устаревшие..

Результат из #checkOp, #noteOp, #startOp: данному вызывающему объекту не разрешено выполнять данную операцию, и эта попытка должна>< автоматически завершиться ошибкой< или ошибкой> (это не должно привести к сбою приложения).

OpstrAddVoicemail

Требуется для доступа к сведениям, связанным с состоянием телефона.

OpstrAnswerPhoneCalls

Ответы на входящие телефонные звонки

OpstrBodySensors

Доступ к датчикам тела, таким как частота сердечных сокращений и т. д.

OpstrCallPhone

Позволяет приложению инициировать телефонный звонок.

OpstrCamera

Требуется для доступа к устройству камеры.

OpstrCoarseLocation

Доступ к грубой информации о местоположении.

OpstrFineLocation

Доступ к точной информации о расположении.

OpstrGetUsageStats

Доступ к android.app.usage.UsageStatsManager.

OpstrMockLocation

Внедрение макета расположения в систему.

OpstrMonitorHighPowerLocation

Постоянный мониторинг данных о расположении с помощью запроса относительно высокой мощности.

OpstrMonitorLocation

Постоянный мониторинг данных о расположении.

OpstrPictureInPicture

Доступ к рисунку в рисунке.

OpstrProcessOutgoingCalls

API-интерфейсы доступа для перенаправления исходящих вызовов

OpstrReadCalendar

Позволяет приложению считывать данные календаря пользователя.

OpstrReadCallLog

Позволяет приложению считывать журнал вызовов пользователя.

OpstrReadCellBroadcasts

Чтение ранее полученных широковещательных сообщений ячейки.

OpstrReadContacts

Позволяет приложению считывать данные контактов пользователя.

OpstrReadExternalStorage

Чтение внешнего хранилища.

OpstrReadPhoneNumbers

App-ops используются для двух целей: контроля доступа и отслеживания.

OpstrReadPhoneState

Требуется для доступа к сведениям, связанным с состоянием телефона.

OpstrReadSms

Позволяет приложению считывать SMS-сообщения.

OpstrReceiveMms

Позволяет приложению получать MMS-сообщения.

OpstrReceiveSms

Позволяет приложению получать SMS-сообщения.

OpstrReceiveWapPush

Позволяет приложению получать push-сообщения WAP.

OpstrRecordAudio

Требуется для доступа к устройству микрофона.

OpstrSendSms

Позволяет приложению отправлять SMS-сообщения.

OpstrSystemAlertWindow

Требуется для рисования поверх других приложений.

OpstrUseFingerprint

Используйте API отпечатков пальцев.

OpstrUseSip

Доступ к API для sip-вызовов через VOIP или Wi-Fi

OpstrWriteCalendar

Позволяет приложению записывать данные календаря пользователя.

OpstrWriteCallLog

Позволяет приложению записывать данные в журнал вызовов пользователя.

OpstrWriteContacts

Позволяет приложению записывать данные контактов пользователя.

OpstrWriteExternalStorage

Запись внешнего хранилища.

OpstrWriteSettings

Требуется для записи, изменения и обновления параметров системы.

WatchForegroundChanges
Устаревшие..

Флаг для #startWatchingMode(String, String, int, OnOpChangedListener): также получает отчеты, если изменяется состояние переднего плана пользовательского интерфейса операции.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
JniPeerMembers

App-ops используются для двух целей: контроля доступа и отслеживания.

PeerReference

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

CheckOp(String, Int32, String)

Этот элемент устарел.

CheckOpNoThrow(String, Int32, String)

Этот элемент устарел.

CheckPackage(Int32, String)

Этот элемент устарел.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Dispose()

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
Dispose(Boolean)

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
FinishOp(String, Int32, String)

Этот элемент устарел.

FinishOp(String, Int32, String, String)

Сообщите, что приложение больше не выполняет операцию, которая ранее была запущена с #startOp(String, int, String, String, String).

FinishProxyOp(String, Int32, String, String)

Сообщите, что приложение больше не выполняет операцию, которая ранее была запущена с #startProxyOp(String, int, String, String, String).

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
IsOpActive(String, Int32, String)

Проверяет, активна ли данная операция для пакета, i.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
NoteOp(String, Int32, String)

Этот элемент устарел.

NoteOp(String, Int32, String, String, String)

Запишите приложение, выполняющее операцию, и проверка, разрешено ли приложению выполнять ее.

NoteOpNoThrow(String, Int32, String)

Этот элемент устарел.

NoteOpNoThrow(String, Int32, String, String, String)

Нравится #noteOp(String, int, String, String, String) , но вместо того, чтобы создать объект , SecurityException он возвращает #MODE_ERRORED.

NoteProxyOp(String, String)

Этот элемент устарел.

NoteProxyOp(String, String, Int32, String, String)

Запишите приложение, выполняющее операцию от имени другого приложения при обработке IPC.

NoteProxyOpNoThrow(String, String)

Этот элемент устарел.

NoteProxyOpNoThrow(String, String, Int32)

Этот элемент устарел.

NoteProxyOpNoThrow(String, String, Int32, String, String)

Нравится #noteProxyOp(String, String, int, String, String) , но вместо того, чтобы создать объект , SecurityException он возвращает #MODE_ERRORED.

Notify()

Пробуждение одного потока, ожидающего на мониторе этого объекта.

(Унаследовано от Object)
NotifyAll()

Активирует все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
PermissionToOp(String)

Возвращает имя операции приложения, связанное с заданным разрешением.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback)

Задайте новый OnOpNotedCallbackобъект .

StartOp(String, Int32, String)

Этот элемент устарел.

StartOp(String, Int32, String, String, String)

Сообщите, что приложение начало выполнять долго выполняющуюся операцию.

StartOpNoThrow(String, Int32, String)

Этот элемент устарел.

StartOpNoThrow(String, Int32, String, String, String)

Нравится #startOp(String, int, String, String, String) , но вместо того, чтобы создать объект , SecurityException он возвращает #MODE_ERRORED.

StartProxyOp(String, Int32, String, String, String)

Сообщите, что приложение начало выполнять долго выполняющуюся операцию от имени другого приложения при обработке IPC.

StartProxyOpNoThrow(String, Int32, String, String, String)

Нравится #startProxyOp(String, int, String, String, String) , но вместо того, чтобы создать объект , SecurityException он возвращает #MODE_ERRORED.

StartWatchingActive(String[], IExecutor, AppOpsManager+IOnOpActiveChangedListener)

App-ops используются для двух целей: контроля доступа и отслеживания.

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

Отслеживайте изменения в режиме работы для данной операции в заданном пакете приложения.

StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener)

App-ops используются для двух целей: контроля доступа и отслеживания.

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

Прекратить наблюдение за изменениями активного состояния app-op.

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

Остановите мониторинг, который ранее был запущен с #startWatchingMode.

ToArray<T>()

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
UnsafeCheckOp(String, Int32, String)

Выполните быстрый проверка, может ли приложение выполнять операцию.

UnsafeCheckOpNoThrow(String, Int32, String)

Нравится #checkOp , но вместо того, чтобы создать объект , SecurityException он возвращает #MODE_ERRORED.

UnsafeCheckOpRaw(String, Int32, String)

Нравится #checkOp , но возвращает <режим em>raw</em> , связанный с операцией.

UnsafeCheckOpRawNoThrow(String, Int32, String)

Нравится #unsafeCheckOpNoThrow(String, int, String) , но возвращает <режим em>raw</em> , связанный с операцией.

Wait()

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>.

(Унаследовано от Object)
Wait(Int64)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
IJavaPeerable.Finalized()

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

App-ops используются для двух целей: контроля доступа и отслеживания.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

App-ops используются для двух целей: контроля доступа и отслеживания.

GetJniTypeName(IJavaPeerable)

App-ops используются для двух целей: контроля доступа и отслеживания.

Применяется к