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
- Наследование
- Атрибуты
Комментарии
Операции с приложениями используются в двух целях: управление доступом и отслеживание.
App-ops охватывает широкий спектр функциональных возможностей, помогая с разрешениями среды выполнения управлять доступом и отслеживанием потребления батареи.
<h2>Access Control</h2>
Приложения могут управляться для каждого пользовательского интерфейса или для каждого пакета. Какой из них используется, зависит от поставщика API, поддерживающего этот app-op. Для любой безопасности или конфиденциальности, связанной с приложением, поставщику необходимо контролировать app-op для каждого пользовательского интерфейса, так как все безопасность и конфиденциальность основаны на пользовательском интерфейсе в Android.
Чтобы управлять доступом к app-op, можно задать режим: <поведение dl><dt><#MODE_DEFAULT
dd>по умолчанию, может отличаться от приложения-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 |
Устаревшие..
Результат от |
ModeDefault |
Устаревшие..
Результат от |
ModeErrored |
Устаревшие..
Результат от |
ModeForeground |
Устаревшие..
Специальный режим, который означает "разрешить только в том случае, если приложение находится на переднем плане. |
ModeIgnored |
Устаревшие..
Результат от |
OpstrAddVoicemail |
Требуется для доступа к сведениям о состоянии телефона. |
OpstrAnswerPhoneCalls |
Ответ на входящие телефонные звонки |
OpstrBodySensors |
Доступ к датчикам тела, таким как пульс и т. д. |
OpstrCallPhone |
Позволяет приложению инициировать телефонный звонок. |
OpstrCamera |
Требуется для доступа к устройству камеры. |
OpstrCoarseLocation |
Доступ к грубым сведениям о расположении. |
OpstrFineLocation |
Доступ к точной информации о расположении. |
OpstrGetUsageStats |
Доступ к |
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 |
Устаревшие..
Флаг: |
Свойства
Class |
Возвращает класс среды выполнения этого |
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) |
Сообщите, что приложение больше не выполняет операцию, которая ранее была запущена |
FinishProxyOp(String, Int32, 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) |
Как |
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) |
Операции с приложениями используются в двух целях: управление доступом и отслеживание. |
StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener) |
Отслеживайте изменения в операционном режиме для указанной операции в заданном пакете приложения. |
StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener) |
Операции с приложениями используются в двух целях: управление доступом и отслеживание. |
StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener) |
Остановите просмотр изменений в активном состоянии приложения-op. |
StopWatchingMode(AppOpsManager+IOnOpChangedListener) |
Остановите мониторинг, который ранее был запущен |
ToArray<T>() |
Операции с приложениями используются в двух целях: управление доступом и отслеживание. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Операции с приложениями используются в двух целях: управление доступом и отслеживание. (Унаследовано от Object) |
UnsafeCheckOp(String, Int32, String) |
Проверьте, может ли приложение выполнять операцию. |
UnsafeCheckOpNoThrow(String, Int32, String) |
Как |
UnsafeCheckOpRaw(String, Int32, String) |
Как |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
Как |
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) |
Операции с приложениями используются в двух целях: управление доступом и отслеживание. |