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는 각 uid 또는 각 패키지에 대해 제어할 수 있습니다. 사용되는 것은 이 app-op을 유지 관리하는 API 공급자에 따라 달라집니다. 모든 보안 또는 개인 정보 보호 관련 앱 op의 경우 공급자는 모든 보안 및 개인 정보 보호가 Android의 uid를 기반으로 하기 때문에 uid당 앱 작업을 제어해야 합니다.

app-op에 대한 액세스를 제어하려면 모드<로 설정할 수 있습니다. dl<>dt#MODE_DEFAULT<>dd>기본 동작, app-op 또는 app-op <dt dd>><#MODE_ALLOWED액세스 허용 <dt#MODE_IGNORED><dd>액세스를 허용하지 않음, 즉 요청된 작업을 수행하거나 요청된 작업을 수행하지 않거나 자리 표시자 데이터 <dt#MODE_ERRORED<>dd>액세스 시 throw를 SecurityException 반환하지 않습니다. 메서드를 사용하여 /dl 모드<를 ...noThrow 검사 이를 억제할 수 있습니다.>

API 공급자는 app-op에 의해 #noteOp 제어되는 작업에 대한 액세스를 허용하는 경우 에서 반환되는 모드를 검사 합니다. #unsafeCheckOp액세스 권한이 부여되지 않은 경우 모드를 검사 데 사용해야 합니다. 예를 들어 UI에서 앱 작업 상태를 표시하거나 나중에 호출 #noteOp 하기 전에 상태를 확인할 때 사용할 수 있습니다.

작업이 시간 범위(예: 오디오 녹음 세션)를 참조하는 경우 API 공급자는 대신 및 을 #finishOp#noteOp사용해야 #startOp 합니다.

<h3>런타임 권한 및 app-ops</h3>

각 플랫폼 정의 런타임 권한(백그라운드 한정자 옆에)에는 추적에 사용되지만 자동 오류를 허용하는 데 사용되는 연결된 앱 작업이 있습니다. 즉, 런타임 권한이 거부된 경우 호출자는 를 가져오 SecurityException지만 권한이 부여되고 app-op이 #MODE_IGNORED 인 경우 호출자는 자리 표시자 동작을 가져옵니다(예: 위치 콜백이 발생하지 않음).

<h3>App-op 권한</h3>

App-ops 권한은 재정의할 수 있는 플랫폼 정의 권한입니다. 앱 작업 권한에 대한 보안 검사 권한 부여 상태를 검사 합니다 #MODE_DEFAULT default . app-op 상태가 로 설정 #MODE_ALLOWED 되거나 #MODE_IGNORED 권한 부여 상태 대신 app-op 상태를 확인해야 하는 경우

이 기능을 사용하면 특정 권한 수준에 대한 요구 사항을 충족하는 앱에 기본적으로 액세스 권한을 부여할 수 있습니다. 그래도 필요한 경우 동작을 재정의할 수 있습니다.

<h2>추적</h2>

App-ops는 런타임 권한으로 보호되는 API에 대한 모든 액세스를 포함하여 많은 중요한 이벤트를 추적합니다. 이 작업은 app-op이 또는 #startOp started인 경우를 추적하여 수행됩니다#noteOp noted. 추적된 데이터는 시스템 구성 요소에서만 읽을 수 있습니다.

<b>추적 #noteOp/#startOp 만 이고 #unsafeCheckOp , 추적되지 않습니다. 따라서 보호된 작업 또는 데이터에 대한 액세스를 제공할 때 또는 #startOp 를 호출 #noteOp 하는 것이 중요합니다.</B>

일부 앱은 다른 앱에 대한 액세스를 전달하고 있습니다. 예를 들어 앱은 시스템의 위치 공급자로부터 위치를 얻은 다음 위치를 세 번째 앱으로 더 보낼 수 있습니다. 이 경우 데이터를 전달하는 앱은 를 호출 #noteProxyOp 하여 액세스 프록시 신호를 받아야 합니다. 다른 특성 태그를 사용하여 태그가 지정된 의 두 부분 간에 액세스가 전달되는 경우에도 단일 앱 내에서 의미가 있을 수 있습니다.

앱을 등록 OnOpNotedCallback 하여 시스템에서 추적하는 액세스에 대한 정보를 얻을 수 있습니다. 각 런타임 권한에 연결된 app-op이 있으므로 이 API는 예기치 않은 프라이빗 데이터 액세스를 찾으려는 앱에 특히 유용합니다.

에 대한 Java 설명서입니다 android.app.AppOpsManager.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

AppOpsManager(IntPtr, JniHandleOwnership)

JNI 개체의 관리형 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

필드

ModeAllowed
사용되지 않음.

결과 , #checkOp#noteOp, #startOp: 지정된 호출자가 지정된 작업을 수행할 수 있습니다.

ModeDefault
사용되지 않음.

#checkOp결과 , #noteOp, #startOp: 지정된 호출자는 기본 보안 검사 사용해야 합니다.

ModeErrored
사용되지 않음.

결과 #checkOpNoThrow, #noteOpNoThrow, #startOpNoThrow: 지정된 호출자가 지정된 작업을 수행할 수 없으며, 이 시도를 수행하면 심각한 오류(일반적으로 SecurityException)가 발생합니다.

ModeForeground
사용되지 않음.

"앱이 포그라운드에 있는 경우에만 허용"을 의미하는 특수 모드입니다.

ModeIgnored
사용되지 않음.

결과 , , : 지정된 호출자가 지정된 작업을 수행할 수 없으며 이 시도는 자동으로 실패</em>(앱이 충돌하지 않아야 합니다)을 포함>해야 합니다<. #startOp#noteOp#checkOp

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

애플리케이션이 WAP 푸시 메시지를 받을 수 있도록 허용합니다.

OpstrRecordAudio

마이크 디바이스에 액세스할 수 있어야 합니다.

OpstrSendSms

애플리케이션에서 SMS 메시지를 보낼 수 있습니다.

OpstrSystemAlertWindow

다른 앱 위에 그리는 데 필요합니다.

OpstrUseFingerprint

지문 API를 사용합니다.

OpstrUseSip

VOIP 또는 WiFi를 통해 SIP 호출에 대한 액세스 API

OpstrWriteCalendar

애플리케이션이 사용자의 일정 데이터에 쓸 수 있도록 허용합니다.

OpstrWriteCallLog

애플리케이션이 사용자의 호출 로그에 쓸 수 있도록 허용합니다.

OpstrWriteContacts

애플리케이션이 사용자의 연락처 데이터에 쓸 수 있도록 허용합니다.

OpstrWriteExternalStorage

외부 스토리지를 작성합니다.

OpstrWriteSettings

시스템 설정을 작성/수정/업데이트하는 데 필요합니다.

WatchForegroundChanges
사용되지 않음.

플래그: #startWatchingMode(String, String, int, OnOpChangedListener)op의 uid 전경 상태가 변경되는 경우에도 보고서를 가져옵니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

App-ops는 액세스 제어 및 추적의 두 가지 용도로 사용됩니다.

(다음에서 상속됨 Object)
JniPeerMembers

App-ops는 액세스 제어 및 추적의 두 가지 용도로 사용됩니다.

PeerReference

App-ops는 액세스 제어 및 추적의 두 가지 용도로 사용됩니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

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) 지만 을 throw하는 대신 를 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) 지만 을 throw하는 대신 를 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) 지만 을 throw하는 대신 를 SecurityException 반환합니다 #MODE_ERRORED.

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

IPC를 처리할 때 애플리케이션이 다른 애플리케이션을 대신하여 장기 실행 작업을 실행하기 시작했다고 보고합니다.

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

와 비슷하 #startProxyOp(String, int, String, String, String) 지만 을 throw하는 대신 를 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 지만 을 throw하는 대신 를 SecurityException 반환합니다 #MODE_ERRORED.

UnsafeCheckOpRaw(String, Int32, String)

유사 #checkOp 하지만 op와 연결된 em>raw</em> 모드를 반환<합니다.

UnsafeCheckOpRawNoThrow(String, Int32, String)

유사 #unsafeCheckOpNoThrow(String, int, String) 하지만 op와 연결된 em>raw</em> 모드를 반환<합니다.

Wait()

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 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는 액세스 제어 및 추적의 두 가지 용도로 사용됩니다.

적용 대상