共用方式為


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

備註

App-ops 用於兩個用途:訪問控制和追蹤。

App-ops 涵蓋各種不同的功能,從協助運行時間許可權訪問控制和追蹤到電池耗用量追蹤。

<h2>訪問控制</h2>

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

若要控制 app-op 的存取權可以設定為:<dl><dt<>#MODE_DEFAULTdd>默認行為,可能與 app-op 或 app-op <dt#MODE_ALLOWED><dd>允許存取 <dt>#MODE_IGNORED<dd>不允許存取,亦即請勿執行要求的動作,或傳回 no 或佔位符數據 <dt<>#MODE_ERROREDdd>擲回SecurityException存取權。 這可以使用 方法來檢查模式 </dl 來隱藏...noThrow>

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

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

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

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

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

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

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

<h2>Tracking</h2>

App-ops 會追蹤許多重要事件,包括所有運行時間許可權受保護 API 的存取。 這是藉由追蹤 app-op 為 #noteOp noted#startOp started時完成。 追蹤的數據只能由系統元件讀取。

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

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

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

android.app.AppOpsManagerJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

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

允許應用程式接收多媒體簡訊。

OpstrReceiveSms

允許應用程式接收簡訊。

OpstrReceiveWapPush

允許應用程式接收 WAP 推播訊息。

OpstrRecordAudio

必須能夠存取麥克風裝置。

OpstrSendSms

允許應用程式傳送簡訊。

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)

取得與指定許可權相關聯的 app-op 名稱。

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 用於兩個用途:訪問控制和追蹤。

適用於