次の方法で共有


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 は、ランタイムのアクセス許可のアクセス制御や追跡からバッテリ消費の追跡まで、さまざまな機能をカバーしています。

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

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

アクセスを制御するには、app-op をモードに<設定できます。dl<>dt><#MODE_DEFAULTdd>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
古い.

#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

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

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

プロパティ

Class

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

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

アプリケーションが、以前に開始 #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)ですが、代わりにそれが返されます#MODE_ERRORED.SecurityException

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)ですが、代わりにそれが返されます#MODE_ERRORED.SecurityException

Notify()

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

(継承元 Object)
NotifyAll()

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

(継承元 Object)
PermissionToOp(String)

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

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)ですが、代わりにそれが返されます#MODE_ERRORED.SecurityException

StartProxyOp(String, Int32, String, String, String)

IPC を処理するときに、アプリケーションが別のアプリケーションに代わって実行時間の長い操作の実行を開始したことを報告します。

StartProxyOpNoThrow(String, Int32, String, String, String)

好き#startProxyOp(String, int, String, String, String)ですが、代わりにそれが返されます#MODE_ERRORED.SecurityException

StartWatchingActive(String[], IExecutor, AppOpsManager+IOnOpActiveChangedListener)

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

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

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

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

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

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

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

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

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

ToArray<T>()

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

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

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

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

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

UnsafeCheckOpNoThrow(String, Int32, String)

好き#checkOpですが、代わりにそれが返されます#MODE_ERRORED.SecurityException

UnsafeCheckOpRaw(String, Int32, String)

Like #checkOp ですが、op に <関連付けられている em>raw</em> モードを返します。

UnsafeCheckOpRawNoThrow(String, Int32, String)

Like #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()

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

適用対象