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
- Наследование
- Атрибуты
Комментарии
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_ALLOWED
dd>Разрешить доступ <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 |
Устаревшие..
Результат из |
ModeDefault |
Устаревшие..
Результат из |
ModeErrored |
Устаревшие..
Результат из |
ModeForeground |
Устаревшие..
Специальный режим, который означает "разрешить только в том случае, если приложение находится на переднем плане. |
ModeIgnored |
Устаревшие..
Результат из |
OpstrAddVoicemail |
Требуется для доступа к сведениям, связанным с состоянием телефона. |
OpstrAnswerPhoneCalls |
Ответы на входящие телефонные звонки |
OpstrBodySensors |
Доступ к датчикам тела, таким как частота сердечных сокращений и т. д. |
OpstrCallPhone |
Позволяет приложению инициировать телефонный звонок. |
OpstrCamera |
Требуется для доступа к устройству камеры. |
OpstrCoarseLocation |
Доступ к грубой информации о местоположении. |
OpstrFineLocation |
Доступ к точной информации о расположении. |
OpstrGetUsageStats |
Доступ к |
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 |
Устаревшие..
Флаг для |
Свойства
Class |
Возвращает класс среды выполнения данного объекта |
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) |
Сообщите, что приложение больше не выполняет операцию, которая ранее была запущена с |
FinishProxyOp(String, Int32, 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) |
Нравится |
NoteProxyOp(String, String) |
Этот элемент устарел. |
NoteProxyOp(String, String, Int32, String, String) |
Запишите приложение, выполняющее операцию от имени другого приложения при обработке IPC. |
NoteProxyOpNoThrow(String, String) |
Этот элемент устарел. |
NoteProxyOpNoThrow(String, String, Int32) |
Этот элемент устарел. |
NoteProxyOpNoThrow(String, String, Int32, String, String) |
Нравится |
Notify() |
Пробуждение одного потока, ожидающего на мониторе этого объекта. (Унаследовано от Object) |
NotifyAll() |
Активирует все потоки, ожидающие на мониторе этого объекта. (Унаследовано от Object) |
PermissionToOp(String) |
Возвращает имя операции приложения, связанное с заданным разрешением. |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback) |
Задайте новый |
StartOp(String, Int32, String) |
Этот элемент устарел. |
StartOp(String, Int32, String, String, String) |
Сообщите, что приложение начало выполнять долго выполняющуюся операцию. |
StartOpNoThrow(String, Int32, String) |
Этот элемент устарел. |
StartOpNoThrow(String, Int32, String, String, String) |
Нравится |
StartProxyOp(String, Int32, String, String, String) |
Сообщите, что приложение начало выполнять долго выполняющуюся операцию от имени другого приложения при обработке IPC. |
StartProxyOpNoThrow(String, Int32, String, String, String) |
Нравится |
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) |
Остановите мониторинг, который ранее был запущен с |
ToArray<T>() |
App-ops используются для двух целей: контроля доступа и отслеживания. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
App-ops используются для двух целей: контроля доступа и отслеживания. (Унаследовано от Object) |
UnsafeCheckOp(String, Int32, String) |
Выполните быстрый проверка, может ли приложение выполнять операцию. |
UnsafeCheckOpNoThrow(String, Int32, String) |
Нравится |
UnsafeCheckOpRaw(String, Int32, String) |
Нравится |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
Нравится |
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 используются для двух целей: контроля доступа и отслеживания. |