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 は、ランタイムのアクセス許可のアクセス制御や追跡からバッテリ消費の追跡まで、さまざまな機能をカバーしています。
<h2>アクセス制御</h2>
アプリ操作は、各 uid またはパッケージごとに制御できます。 どちらを使用するかは、このアプリ操作を維持している API プロバイダーによって異なります。 セキュリティまたはプライバシーに関連するアプリ操作の場合、すべてのセキュリティとプライバシーは Android の uid に基づいているため、プロバイダーは uid ごとにアプリ操作を制御する必要があります。
アクセスを制御するには、app-op をモードに<設定できます。dl<>dt><#MODE_DEFAULT
dd>Default 動作は、app-op または app-op <dt<#MODE_ALLOWED
>dd Allow the access <dt>#MODE_IGNORED
<dd>>がアクセスを許可しない、つまり、要求されたアクションを実行しないか、またはプレースホルダー データ <dt#MODE_ERRORED
<>dd>Throw a SecurityException
on access とは異なる場合があります。 これを抑制するには、メソッドを ...noThrow
使用してモード </dl を確認します。>
API プロバイダーは、app-op によって #noteOp
制御される操作へのアクセスを許可している場合に返されるモードを確認する必要があります。 #unsafeCheckOp
アクセスが許可されていない場合は、モードを確認するために使用する必要があります。 たとえば、UI にアプリ操作の状態を表示したり、後で呼び出す #noteOp
前に状態を確認したりするために使用できます。
操作が時間スパン (オーディオ録音セッションなど) を参照する場合、API プロバイダーは使用 #startOp
する #finishOp
必要があります。代わりに #noteOp
.
<h3>ランタイムのアクセス許可と app-ops</h3>
(バックグラウンド修飾子の横に) プラットフォームで定義された各ランタイムアクセス許可には、追跡に使用されるが、サイレント エラーを可能にするために使用されるアプリ操作が関連付けられています。 つまり、ランタイムアクセス許可が拒否された場合、呼び出し元はaを SecurityException
取得しますが、アクセス許可が付与され、app-opである場合、呼び出し元は #MODE_IGNORED
プレースホルダーの動作を取得します。たとえば、場所のコールバックは発生しません。
<h3>App-op アクセス許可</h3>
アプリ操作のアクセス許可は、オーバーライドできるプラットフォーム定義のアクセス許可です。 アプリ操作のアクセス許可のセキュリティ チェックでは、アクセス許可の許可の状態を確認する必要があります #MODE_DEFAULT default
。 アプリ操作の状態が設定 #MODE_ALLOWED
されている場合、または #MODE_IGNORED
アクセス許可の許可の状態ではなく、アプリ操作の状態をチェックする必要がある場合。
この機能を使用すると、特定のアクセス許可レベルの要件を満たすアプリに既定でアクセス権を付与できます。 それでも、必要に応じて動作をオーバーライドできます。
<h2>Tracking</h2>
App-ops は、ランタイムアクセス許可で保護された API へのすべてのアクセスを含む、多くの重要なイベントを追跡します。 これは、アプリ操作がいつ行われた #noteOp noted
か、または #startOp started
. 追跡対象のデータは、システム コンポーネントによってのみ読み取ることができます。
<b>追跡されるのは、追跡のみ#startOp
#noteOp
/であり、#unsafeCheckOp
追跡されません。 そのため、最終的に呼び出 #noteOp
すか、保護された操作または #startOp
データへのアクセスを提供することが重要です。</b>
一部のアプリは、他のアプリにアクセスを転送しています。 たとえば、アプリがシステムの場所プロバイダーから場所を取得し、その場所をさらに 3 番目のアプリに送信する場合があります。 この場合、データを渡すアプリは、アクセス プロキシを通知するために呼び出す #noteProxyOp
必要があります。 異なる属性タグでタグ付けされたタグの 2 つの部分の間でアクセスが転送される場合、これは 1 つのアプリ内でも意味を持つ可能性があります。
アプリは、システムが追跡しているアクセスに関する情報を得るために登録 OnOpNotedCallback
できます。 各ランタイム アクセス許可にはアプリ操作が関連付けられているため、この API は、予期しないプライベート データ アクセスを検索するアプリに特に役立ちます。
の Java ドキュメントandroid.app.AppOpsManager
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
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 |
アプリ操作は、アクセス制御と追跡の 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 |
古い.
フラグ: |
プロパティ
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
JniPeerMembers |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 |
PeerReference |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
CheckOp(String, Int32, String) |
このメンバーは非推奨です。 |
CheckOpNoThrow(String, Int32, String) |
このメンバーは非推奨です。 |
CheckPackage(Int32, String) |
このメンバーは非推奨です。 |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Dispose() |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
Dispose(Boolean) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
FinishOp(String, Int32, String) |
このメンバーは非推奨です。 |
FinishOp(String, Int32, String, String) |
アプリケーションが、以前に開始 |
FinishProxyOp(String, Int32, 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) |
好き |
NoteProxyOp(String, String) |
このメンバーは非推奨です。 |
NoteProxyOp(String, String, Int32, String, String) |
IPC を処理するときに、別のアプリケーションに代わって操作を実行しているアプリケーションを書き留めておきます。 |
NoteProxyOpNoThrow(String, String) |
このメンバーは非推奨です。 |
NoteProxyOpNoThrow(String, String, Int32) |
このメンバーは非推奨です。 |
NoteProxyOpNoThrow(String, String, Int32, String, String) |
好き |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 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) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 |
StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener) |
特定のアプリ パッケージ内の特定の操作の動作モードへの変更を監視します。 |
StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 |
StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener) |
アプリ操作のアクティブな状態への変更の監視を停止します。 |
StopWatchingMode(AppOpsManager+IOnOpChangedListener) |
以前に開始された監視を停止します |
ToArray<T>() |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
UnregisterFromRuntime() |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
UnsafeCheckOp(String, Int32, String) |
アプリケーションが操作を実行できるかどうかを簡単に確認します。 |
UnsafeCheckOpNoThrow(String, Int32, String) |
好き |
UnsafeCheckOpRaw(String, Int32, String) |
Like |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
Like |
Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
IJavaPeerable.Finalized() |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 |
GetJniTypeName(IJavaPeerable) |
アプリ操作は、アクセス制御と追跡の 2 つの目的で使用されます。 |