Поделиться через


AppOpsManager Класс

Определение

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

[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 охватывает широкий спектр функциональных возможностей, помогая с разрешениями среды выполнения управлять доступом и отслеживанием потребления батареи.

<h2>Access Control</h2>

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

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

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

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

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

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

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

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

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

<h2 Отслеживание</h2>>

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

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

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

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

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

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

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

AppOpsManager(IntPtr, JniHandleOwnership)

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

Поля

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

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

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

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

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

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

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

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

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

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

OpstrAddVoicemail

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

OpstrAnswerPhoneCalls

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

OpstrBodySensors

Доступ к датчикам тела, таким как пульс и т. д.

OpstrCallPhone

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

OpstrCamera

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

OpstrCoarseLocation

Доступ к грубым сведениям о расположении.

OpstrFineLocation

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

OpstrGetUsageStats

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

OpstrMockLocation

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

OpstrMonitorHighPowerLocation

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

OpstrMonitorLocation

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

OpstrPictureInPicture

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

OpstrProcessOutgoingCalls

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

OpstrReadCalendar

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

OpstrReadCallLog

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

OpstrReadCellBroadcasts

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

OpstrReadContacts

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

OpstrReadExternalStorage

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

OpstrReadPhoneNumbers

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

PeerReference

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

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

ThresholdType

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

Методы

CheckOp(String, Int32, String)

Этот элемент считается нерекомендуемым.

CheckOpNoThrow(String, Int32, String)

Этот элемент считается нерекомендуемым.

CheckPackage(Int32, String)

Этот элемент считается нерекомендуемым.

Clone()

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

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

(Унаследовано от 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)

Проверяет, активен ли указанный оп для пакета.

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)

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

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

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

Остановите просмотр изменений в активном состоянии приложения-op.

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

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

ToArray<T>()

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

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

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Проверьте, может ли приложение выполнять операцию.

UnsafeCheckOpNoThrow(String, Int32, String)

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

UnsafeCheckOpRaw(String, Int32, String)

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

UnsafeCheckOpRawNoThrow(String, Int32, String)

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

Wait()

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

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

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

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

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

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

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

IJavaPeerable.Disposed()

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

GetJniTypeName(IJavaPeerable)

Операции с приложениями используются в двух целях: управление доступом и отслеживание.

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