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
- 繼承
- 屬性
備註
App-ops 用於兩個用途:訪問控制和追蹤。
App-ops 涵蓋各種不同的功能,從協助運行時間許可權訪問控制和追蹤到電池耗用量追蹤。
<h2>訪問控制</h2>
App-ops 可以針對每個 uid 或每個套件控制。 使用哪一個取決於維護此應用程式作業的 API 提供者。 針對任何安全性或隱私權相關應用程式作業,提供者必須控制每個 uid 的應用程式作業,因為所有安全性和隱私權都是以 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
傳回的模式,是否允許存取應用程式作業所閘道的作業。 #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.AppOpsManager
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
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 |
允許應用程式接收多媒體簡訊。 |
OpstrReceiveSms |
允許應用程式接收簡訊。 |
OpstrReceiveWapPush |
允許應用程式接收 WAP 推播訊息。 |
OpstrRecordAudio |
必須能夠存取麥克風裝置。 |
OpstrSendSms |
允許應用程式傳送簡訊。 |
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 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
明確介面實作
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 用於兩個用途:訪問控制和追蹤。 |