AppOpsManager クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アプリ操作は、アクセス制御と追跡の 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
- 継承
- 属性
注釈
アプリ操作は、アクセス制御と追跡の 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 |
この |
| 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) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|