AppOpsManager 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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
- 繼承
- 屬性
備註
應用程式作業用於兩個用途:存取控制和追蹤。
應用程式作業涵蓋各種功能,包括協助執行時間許可權存取控制和追蹤到電池耗用量追蹤。
<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 |
已淘汰.
、 |
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 用於兩個用途:存取控制和追蹤。 |
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 |
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) |
報告應用程式不再執行先前以 啟動 |
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() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 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) |
App-ops 用於兩個用途:存取控制和追蹤。 |
StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener) |
監視指定應用程式套件中指定作業的作業模式變更。 |
StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener) |
App-ops 用於兩個用途:存取控制和追蹤。 |
StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener) |
停止監看 app-op 作用中狀態的變更。 |
StopWatchingMode(AppOpsManager+IOnOpChangedListener) |
停止先前以 |
ToArray<T>() |
App-ops 用於兩個用途:存取控制和追蹤。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
App-ops 用於兩個用途:存取控制和追蹤。 (繼承來源 Object) |
UnsafeCheckOp(String, Int32, String) |
快速檢查應用程式是否可以執行作業。 |
UnsafeCheckOpNoThrow(String, Int32, String) |
就像 , |
UnsafeCheckOpRaw(String, Int32, String) |
如同 , |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
如同 , |
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 用於兩個用途:存取控制和追蹤。 |