AppOpsManager クラス

定義

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

[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 は、アクセス制御と追跡という 2 つの目的で使用されます。

App-ops では、ランタイムのアクセス許可のアクセス制御と追跡の支援から、バッテリ消費の追跡まで、さまざまな機能がカバーされています。

<h2>アクセス制御</h2>

App-ops は、uid ごとに制御することも、パッケージごとに制御することもできます。 どちらを使用するかは、この app-op を維持している API プロバイダーによって異なります。 セキュリティまたはプライバシーに関連する app-op の場合、すべてのセキュリティとプライバシーは Android の uid に基づいているため、プロバイダーは uid ごとに app-op を制御する必要があります。

アクセスを制御するには、app-op をモードに設定できます。 <dl<>dt#MODE_DEFAULT<>dd>Default behavior, might be differ from app-op or app-op <dt>#MODE_ALLOWED<dd>Allow the access dt dd Allow the access <dt#MODE_IGNORED><dd>Don't allow the access, つまり、 don't perform the requested action or return no or placeholder data <dt#MODE_ERRORED<>dd>Throw a SecurityException on access. これを抑制するには、 メソッドを...noThrow使用してモード </dl をチェックします。>

API プロバイダーは、app-op によって制御される操作へのアクセスを許可している場合に、 によって#noteOp返されるモードをチェックする必要があります。 #unsafeCheckOpアクセスが許可されていない場合は、モードをチェックするために使用する必要があります。 たとえば、UI で app-op 状態を表示したり、後でを呼び出す #noteOp 前に状態を確認したりするために使用できます。

操作が期間 (オーディオ録音セッションなど) を参照している場合、API プロバイダーは ではなく #noteOp#finishOp を使用#startOpする必要があります。

<h3>ランタイムのアクセス許可と app-ops</h3>

プラットフォームで定義された各ランタイム アクセス許可 (バックグラウンド修飾子の横) には、追跡に使用されるアプリ操作が関連付けられていますが、サイレント エラーも許可されます。 つまり、ランタイムアクセス許可が拒否された場合、呼び出し元は を SecurityException取得しますが、アクセス許可が付与され、app-op がである場合、呼び出し元は #MODE_IGNORED プレースホルダーの動作を取得します。たとえば、場所のコールバックは発生しません。

<h3>App-op permissions</h3>

App-ops のアクセス許可は、オーバーライドできるプラットフォーム定義のアクセス許可です。 app-op アクセス許可のセキュリティ チェックは、アクセス許可付与の状態をチェックする必要があります#MODE_DEFAULT default。 app-op 状態が に #MODE_ALLOWED 設定されている場合、または #MODE_IGNORED アクセス許可付与状態ではなく app-op 状態をチェックする必要がある場合。

この機能を使用すると、特定のアクセス許可レベルの要件を満たすアプリに既定でアクセス権を付与できます。 それでも、必要に応じて動作をオーバーライドできます。

<h2>Tracking</h2>

App-ops は、ランタイム アクセス許可で保護された API へのすべてのアクセスを含む、多くの重要なイベントを追跡します。 これは、app-op が または #startOp startedだった#noteOp notedときに追跡することによって行われます。 追跡されたデータは、システム コンポーネントによってのみ読み取ることができます。

<b>のみ #noteOp/#startOp 追跡されます。 #unsafeCheckOp 追跡されません。 そのため、保護された操作や#startOpデータへのアクセスを提供する場合は、最終的に または を呼び出#noteOpす必要があります。</B>

一部のアプリは、他のアプリにアクセスを転送しています。 たとえば、アプリがシステムの場所プロバイダーから場所を取得し、その場所をさらに 3 番目のアプリに送信する場合があります。 この場合、データを渡すアプリは を呼び出 #noteProxyOp して、アクセス プロキシを通知する必要があります。 また、異なる属性タグでタグ付けされた の 2 つの部分の間でアクセスが転送される場合は、1 つのアプリ内でも意味があります。

アプリは、 を OnOpNotedCallback 登録して、システムが追跡しているアクセスに関する情報を取得できます。 各ランタイム アクセス許可にはアプリ操作が関連付けられているため、この API は、予期しないプライベート データ アクセスを検索するアプリに特に役立ちます。

の Java ドキュメント android.app.AppOpsManager

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

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

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

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
古い.

フラグ: op の #startWatchingMode(String, String, int, OnOpChangedListener)uid のフォアグラウンド状態が変更された場合もレポートを取得します。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
JniPeerMembers

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

PeerReference

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
ThresholdClass

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

CheckOp(String, Int32, String)

このメンバーは非推奨とされます。

CheckOpNoThrow(String, Int32, String)

このメンバーは非推奨とされます。

CheckPackage(Int32, String)

このメンバーは非推奨とされます。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
Dispose(Boolean)

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 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()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
PermissionToOp(String)

特定のアクセス許可に関連付けられている app-op 名を取得します。

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 は、アクセス制御と追跡という 2 つの目的で使用されます。

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

指定されたアプリ パッケージ内の特定の操作の動作モードの変更を監視します。

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

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

app-op のアクティブな状態に対する変更の監視を停止します。

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

で以前に開始された監視を #startWatchingMode停止します。

ToArray<T>()

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
UnsafeCheckOp(String, Int32, String)

アプリケーションが操作を実行できるかどうかを簡単にチェックします。

UnsafeCheckOpNoThrow(String, Int32, String)

と同様 #checkOp ですが、 をスローする 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> または>< em 中断</em によって待機します>。>

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
IJavaPeerable.Finalized()

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

GetJniTypeName(IJavaPeerable)

App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。

適用対象