AppOpsManager クラス

定義

アプリ操作は、アクセス制御と追跡の 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
属性

注釈

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 App-ops は、ランタイムのアクセス許可のアクセス制御や追跡からバッテリ消費の追跡まで、さまざまな機能をカバーしています。 アクセス制御アプリ操作は、各 uid またはパッケージごとに制御できます。 どちらを使用するかは、このアプリ操作を維持している API プロバイダーによって異なります。 セキュリティまたはプライバシーに関連するアプリ運用の場合、すべてのセキュリティとプライバシーは Android の uid に基づいているため、プロバイダーは uid ごとにアプリ操作を制御する必要があります。 アクセスを制御するには、app-op をモードに設定できます。MODE_DEFAULT既定の動作は、app-op または app-op MODE_ALLOWEDアクセスを許可するMODE_IGNOREDアクセスを許可しない、つまり、要求されたアクションを実行しないか、アクセス時に SecurityException をスロー MODE_ERROREDプレースホルダー データを返さない、などと異なる場合があります。 これは、... を使用して抑制できます。モード API プロバイダーを確認する noThrow メソッドは、app-op によって制御される操作へのアクセスを許可している場合、noteOp(String, int, String) によって返されるモードを確認する必要があります。 unsafeCheckOp(String, int, String) を使用して、アクセスが許可されていない場合にモードを確認する必要があります。 たとえば、これは、UI でアプリ操作の状態を表示したり、後で noteOp(String, int, String) を呼び出す前に状態を確認したりするために使用できます。 操作が期間 (オーディオ録音セッションなど) を参照する場合、API プロバイダーは noteOp(String, int, String) の代わりに startOp(String, int, String) と finishOp(String, int, String) を使用する必要があります。 ランタイムのアクセス許可と app-ops(バックグラウンド修飾子の他に) プラットフォームによって定義された各ランタイムアクセス許可には、追跡に使用されるが、サイレントエラーを可能にするために使用されるアプリ操作が関連付けられています。 つまり、ランタイムアクセス許可が拒否された場合、呼び出し元は SecurityException を取得しますが、アクセス許可が付与され、app-op がMODE_IGNORED場合、呼び出し元はプレースホルダーの動作を取得します。たとえば、場所のコールバックは発生しません。 App-op のアクセス許可 App-ops のアクセス許可は、オーバーライドできるプラットフォーム定義のアクセス許可です。 アプリ操作のアクセス許可のセキュリティ チェックでは、既定でアクセス許可の許可の状態を確認する必要があります。 アプリ操作の状態がMODE_ALLOWEDまたはMODE_IGNOREDに設定されている場合は、アクセス許可の許可の状態ではなく、アプリ操作の状態を確認する必要があります。 この機能を使用すると、特定のアクセス許可レベルの要件を満たすアプリに既定でアクセス権を付与できます。 それでも、必要に応じて動作をオーバーライドできます。 App-ops の追跡では、ランタイムアクセス許可で保護された API へのすべてのアクセスなど、多くの重要なイベントが追跡されます。 これは、アプリ操作がいつ記録または開始されたかを追跡することによって行われます。 追跡対象のデータは、システム コンポーネントによってのみ読み取ることができます。 noteOp(String, int, String)/startOp(String, int, String) のみが追跡されます。unsafeCheckOp(String, int, String) は追跡されません。 そのため、保護された操作またはデータへのアクセスを提供する場合は、最終的に noteOp(String、int、String) または startOp(String、int、String) を呼び出す必要があります。 一部のアプリは、他のアプリにアクセスを転送しています。 たとえば、アプリがシステムの場所プロバイダーから場所を取得し、その場所をさらに 3 番目のアプリに送信する場合があります。 この場合、データを渡すアプリは noteProxyOp(String, String) を呼び出してアクセス プロキシを通知する必要があります。 異なる属性タグでタグ付けされたタグの 2 つの部分の間でアクセスが転送される場合、これは 1 つのアプリ内でも意味を持つ可能性があります。 アプリは OnOpNotedCallback を登録して、システムが追跡しているアクセスに関する情報を取得できます。 各ランタイム アクセス許可にはアプリ操作が関連付けられているため、この API は、予期しないプライベート データ アクセスを検索するアプリに特に役立ちます。

android.app.AppOpsManagerの Android リファレンス。

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

コンストラクター

名前 説明
AppOpsManager(IntPtr, JniHandleOwnership)

既存の Java Native Interface オブジェクトのマネージド表現を初期化します。

フィールド

名前 説明
ModeAllowed
古い.

checkOp(String, int, String), noteOp(String, int, String), startOp(String, int, String): 指定された呼び出し元は、指定された操作を実行できます。

ModeDefault
古い.

checkOp(String, int, String), noteOp(String, int, String), startOp(String, int, String): 指定された呼び出し元は、既定のセキュリティ チェックを使用する必要があります。

ModeErrored
古い.

checkOpNoThrow(String, int, String), noteOpNoThrow(String, int, String), startOpNoThrow(String, int, String): 指定された呼び出し元は指定された操作を実行できません。この試行により、致命的なエラー (通常は SecurityException) が発生します。

ModeForeground
古い.

"アプリがフォアグラウンドの場合にのみ許可する" ことを意味する特別なモード。unsafeCheckOp(String, int, String), noteOp(String, int, String), startOp(String, int, String) からは返されません。

ModeIgnored
古い.

checkOp(String, int, String), noteOp(String, int, String), startOp(String, int, String): 指定された呼び出し元は指定された操作を実行できません。この試行は自動的に失敗します (アプリがクラッシュすることはありません)。

OpNotedCallbackFlagIgnoreAsync
古い.

非同期操作に関するイベントを無視します。

OpstrAddVoicemail

電話の状態関連情報にアクセスするために必要です。

OpstrAnswerPhoneCalls

着信通話に応答する

OpstrBodySensors

心拍数などのボディセンサーへのアクセス

OpstrCallPhone

アプリケーションが通話を開始できるようにします。

OpstrCamera

カメラ デバイスにアクセスできるようにするために必要です。

OpstrCoarseLocation

粗い位置情報へのアクセス。

OpstrFineLocation

細かい位置情報へのアクセス。

OpstrGetUsageStats

UsageStatsManager へのアクセス。

OpstrMockLocation

モック位置をシステムに挿入します。

OpstrMonitorHighPowerLocation

比較的高い電力要求で場所データを継続的に監視します。

OpstrMonitorLocation

場所データを継続的に監視する。

OpstrPictureInPicture

ピクチャインピクチャへのアクセス。

OpstrProcessOutgoingCalls

発信呼び出しを転送するためのアクセス API

OpstrReadCalendar

アプリケーションがユーザーの予定表データを読み取ることができます。

OpstrReadCallLog

アプリケーションがユーザーの呼び出しログを読み取ることができます。

OpstrReadCellBroadcasts

以前に受信したセル ブロードキャスト メッセージを読み取る。

OpstrReadContacts

アプリケーションがユーザーの連絡先データを読み取ることができます。

OpstrReadExternalStorage

外部ストレージを読み取る。

OpstrReadPhoneNumbers

定数値: "android:read_phone_numbers"

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 インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)
JniPeerMembers

Android.App.AppOpsManager の JNI バインド インフラストラクチャを提供します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

Android.App.AppOpsManager の JNI バインド インフラストラクチャを提供します。

ThresholdType

Android.App.AppOpsManager の JNI バインド インフラストラクチャを提供します。

メソッド

名前 説明
CheckOp(String, Int32, String, String)

アプリケーションが操作を実行できるかどうかを確認します。

CheckOp(String, Int32, String)

アプリケーションが操作を実行できるかどうかを確認します。

CheckOpNoThrow(String, Int32, String, String)

checkOp(String,int,String,String) と同様に、SecurityException をスローする代わりに、MODE_ERROREDを返します。

CheckOpNoThrow(String, Int32, String)

checkOp(String,int,String) と同様に、SecurityException をスローする代わりに、MODE_ERROREDを返します。

CheckOpRawNoThrow(String, Int32, String, String)

checkOp(String,int,String,String) と同様ですが、op に関連付けられている生モードを返します。

CheckPackage(Int32, String)

このメソッドは、API レベル 30 では非推奨になりました。

Clone()

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

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)
Equals(Object)

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

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

startOp(String,int,String,String,String,String) で開始された操作がアプリケーションで実行されなくなったことを報告します。

FinishOp(String, Int32, String)

このメソッドは、API レベル 30 では非推奨になりました。

FinishProxyOp(String, Int32, String, String)

startProxyOp(String,int,String,String,String) で開始された操作がアプリケーションで実行されなくなったことを報告します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

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

パッケージの指定された操作がアクティブかどうかを確認します。つまり、

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

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

操作を実行しているアプリケーションをメモし、アプリケーションで実行が許可されているかどうかを確認します。

NoteOp(String, Int32, String)

このメソッドは、API レベル 30 では非推奨になりました。

NoteOpNoThrow(String, Int32, String, String, String)

noteOp(String,int,String,String,String) と同様に、SecurityException をスローする代わりに、MODE_ERROREDを返します。

NoteOpNoThrow(String, Int32, String)

このメソッドは、API レベル 30 では非推奨になりました。

NoteProxyOp(String, String, Int32, String, String)

IPC を処理するときに、別のアプリケーションに代わって操作を実行しているアプリケーションを書き留めておきます。

NoteProxyOp(String, String)

このメソッドは、API レベル 30 では非推奨になりました。

NoteProxyOpNoThrow(String, String, Int32, String, String)

noteProxyOp(String,String,int,String,String)と同様に、SecurityException をスローする代わりに、MODE_ERROREDを返します。

NoteProxyOpNoThrow(String, String, Int32)

このメソッドは、API レベル 30 では非推奨になりました。

NoteProxyOpNoThrow(String, String)

このメソッドは、API レベル 30 では非推奨になりました。

Notify()

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

(継承元 Object)
NotifyAll()

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

(継承元 Object)
PermissionToOp(String)

特定のアクセス許可に関連付けられているアプリ操作名を取得します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback, AppOpsManagerCallbackFlag)

新しい OnOpNotedCallback を設定します。

SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback)

新しい OnOpNotedCallback を設定します。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)
StartOp(String, Int32, String, String, String)

アプリケーションが実行時間の長い操作の実行を開始したことを報告します。

StartOp(String, Int32, String)

このメソッドは、API レベル 30 では非推奨になりました。

StartOpNoThrow(String, Int32, String, String, String)

startOp(String,int,String,String,String) と同様ですが、SecurityException をスローする代わりに、MODE_ERROREDを返します。

StartOpNoThrow(String, Int32, String)

このメソッドは、API レベル 30 では非推奨になりました。

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 のアクティブな状態への変更の監視を開始します。

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

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

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

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

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

アプリ操作のアクティブな状態への変更の監視を停止します。

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

startWatchingMode(String, String, OnOpChangedListener) で以前に開始された監視を停止します。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

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

このメソッドは、API レベル 36 では非推奨になりました。

UnsafeCheckOpNoThrow(String, Int32, String)

このメソッドは、API レベル 36 では非推奨になりました。

UnsafeCheckOpRaw(String, Int32, String)

このメソッドは、API レベル 36 では非推奨になりました。

UnsafeCheckOpRawNoThrow(String, Int32, String)

このメソッドは、API レベル 36 では非推奨になりました。

Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

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

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

(継承元 Object)
Wait(Int64)

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

(継承元 Object)

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

名前 説明
IJavaPeerable.Disposed()

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)
IJavaPeerable.Finalized()

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

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

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

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

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

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

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

(継承元 JavaObject)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象