Share via


AppOpsManager 類別

定義

App-ops 用於兩個用途:存取控制和追蹤。

[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
屬性

備註

應用程式作業用於兩個用途:存取控制和追蹤。

應用程式作業涵蓋各種功能,包括協助執行時間許可權存取控制和追蹤到電池耗用量追蹤。

<h2 > 存取控制 < /h2>

應用程式作業可以控制每個 uid 或每個套件。 使用哪一個取決於維護此應用程式作業的 API 提供者。 針對任何安全性或隱私權相關應用程式作業,提供者必須控制每個 uid 的 app-op,因為所有安全性和隱私權都是以 Android 中的 uid 為基礎。

若要控制 app-op 的存取權,可以設定為模式: < dl >< dt <#MODE_DEFAULT> dd > 預設行為,可能與 app-op 或 app-op < dt <>#MODE_ALLOWED dd > 允許存取 dt #MODE_IGNORED>< dd > 不允許存取 < ,亦即不要執行要求的動作或傳回 no 或預留位置資料 < dt #MODE_ERRORED<> dd > 在存取時擲 SecurityException 回 。 這可以使用 方法來檢查模式 < /dl 來隱藏 ...noThrow>

API 提供者必須檢查 所傳 #noteOp 回的模式,是否允許存取由 app-op 所閘道的作業。 #unsafeCheckOp 如果未授與任何存取權,則應該用來檢查模式。 例如,這可用於在 UI 中顯示 app-op 狀態,或在稍後呼叫 #noteOp 之前檢查狀態時。

如果作業參考時間範圍 (例如音訊錄製會話,) API 提供者應該使用 #startOp#finishOp 而不是 #noteOp

<h3 > 執行時間許可權和 app-ops < /h3>

每個平臺定義的執行時間許可權 (背景修飾詞) 都有相關聯的應用程式作業,用於追蹤,但也允許無訊息失敗。 亦即,如果執行時間許可權遭到拒絕,則呼叫端會取得 SecurityException ,但如果授與許可權且 app-op 為 #MODE_IGNORED ,則呼叫端會取得預留位置行為,例如位置回呼不會發生。

<h3 > App-op 許可權 < /h3>

App-ops 許可權是可覆寫的平臺定義許可權。 應用程式作業許可權的安全性檢查應該檢查 #MODE_DEFAULT default 許可權授與狀態。 如果 app-op 狀態設定 #MODE_ALLOWED 為 或 #MODE_IGNORED 應該檢查 app-op 狀態,而不是許可權授與狀態。

這項功能預設允許將存取權授與符合特定許可權等級需求的應用程式。 仍可視需要覆寫行為。

<h2 > 追蹤 < /h2>

App-ops 會追蹤許多重要事件,包括所有執行時間許可權受保護 API 的存取權。 這是藉由追蹤應用程式作業或 #noteOp noted#startOp started 時完成。 追蹤的資料只能由系統元件讀取。

<b > 只會 #noteOp/#startOp 追蹤; #unsafeCheckOp 不會追蹤。 因此,請務必最終呼叫 #noteOp ,或在 #startOp 提供受保護作業或資料的存取權時呼叫 或 。 </B>

某些應用程式正在轉送其他應用程式的存取權。 例如,應用程式可能會從系統的位置提供者取得位置,然後將位置進一步傳送至第三個應用程式。 在此情況下,傳遞資料的應用程式必須呼叫 #noteProxyOp 來發出存取 Proxy 的訊號。 如果存取權是在標記不同屬性標籤的兩個部分之間轉送,也可能在單一應用程式內有意義。

應用程式可以註冊 , OnOpNotedCallback 以取得系統追蹤其存取權的通知。 由於每個執行時間許可權都有相關聯的應用程式作業,因此對於想要尋找非預期私人資料存取的應用程式特別有用。

android.app.AppOpsManager JAVA 檔。

此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。

建構函式

AppOpsManager(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。

欄位

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

App-ops 用於兩個用途:存取控制和追蹤。

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

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
JniPeerMembers

App-ops 用於兩個用途:存取控制和追蹤。

PeerReference

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
ThresholdClass

此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。

ThresholdType

此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。

方法

CheckOp(String, Int32, String)

已取代這個成員。

CheckOpNoThrow(String, Int32, String)

已取代這個成員。

CheckPackage(Int32, String)

已取代這個成員。

Clone()

建立並傳回這個 物件的複本。

(繼承來源 Object)
Dispose()

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
Dispose(Boolean)

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 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) 但不會擲 SecurityException 回 ,而是會傳 #MODE_ERRORED 回 。

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) 但不會擲 SecurityException 回 ,而是會傳 #MODE_ERRORED 回 。

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 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) 但不會擲 SecurityException 回 ,而是會傳 #MODE_ERRORED 回 。

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)

App-ops 用於兩個用途:存取控制和追蹤。

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

停止監看 app-op 作用中狀態的變更。

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

停止先前以 #startWatchingMode 啟動的監視。

ToArray<T>()

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
UnsafeCheckOp(String, Int32, String)

快速檢查應用程式是否可以執行作業。

UnsafeCheckOpNoThrow(String, Int32, String)

就像 , #checkOp 但不會擲 SecurityException 回 ,而是會傳 #MODE_ERRORED 回 。

UnsafeCheckOpRaw(String, Int32, String)

如同 , #checkOp 但會傳 < 回與 op 相關聯的 em > raw < /em > 模式。

UnsafeCheckOpRawNoThrow(String, Int32, String)

如同 , #unsafeCheckOpNoThrow(String, int, String) 但會傳 < 回與 op 相關聯的 em > raw < /em > 模式。

Wait()

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > 。 ><

(繼承來源 Object)
Wait(Int64)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <>

(繼承來源 Object)

明確介面實作

IJavaPeerable.Disposed()

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
IJavaPeerable.Finalized()

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

App-ops 用於兩個用途:存取控制和追蹤。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

App-ops 用於兩個用途:存取控制和追蹤。

GetJniTypeName(IJavaPeerable)

App-ops 用於兩個用途:存取控制和追蹤。

適用於