AppOpsManager クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 属性
注釈
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 |
古い.
|
ModeDefault |
古い.
|
ModeErrored |
古い.
|
ModeForeground |
古い.
"アプリがフォアグラウンドにある場合にのみ許可する" を意味する特別なモード。 |
ModeIgnored |
古い.
|
OpstrAddVoicemail |
電話の状態関連情報にアクセスするために必要です。 |
OpstrAnswerPhoneCalls |
着信通話に応答する |
OpstrBodySensors |
心拍数などのボディセンサーへのアクセス |
OpstrCallPhone |
アプリケーションが電話を開始できるようにします。 |
OpstrCamera |
カメラ デバイスにアクセスできるようにするために必要です。 |
OpstrCoarseLocation |
粗い位置情報へのアクセス。 |
OpstrFineLocation |
細かい位置情報へのアクセス。 |
OpstrGetUsageStats |
への |
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 の |
プロパティ
Class |
この |
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) |
アプリケーションが、 で以前に開始 |
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) |
特定のアクセス許可に関連付けられている app-op 名を取得します。 |
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) |
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) |
で以前に開始された監視を |
ToArray<T>() |
App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
App-ops は、アクセス制御と追跡という 2 つの目的で使用されます。 (継承元 Object) |
UnsafeCheckOp(String, Int32, String) |
アプリケーションが操作を実行できるかどうかを簡単にチェックします。 |
UnsafeCheckOpNoThrow(String, Int32, String) |
と同様 |
UnsafeCheckOpRaw(String, Int32, String) |
と同様 |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
と同様 |
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 つの目的で使用されます。 |