2013-06-21 23 views
0

我最近一直在審查Android的設備管理API,以便找到一種方法來保護設備免於強制停止或卸載某些應用。我碰到wipeData來到()如下:如何僅允許Android應用授予設備管理API訪問權限以控制給定功能

http://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#wipeData(int)

什麼是一點來看,如果用戶可以簡單地從設備的「設置」菜單擦拭數據?當我最初發布這個問題時,我沒有意識到一個有效的用途可能是遠程擦除設備。我明白了,但我特別關注的是保護某些功能,以便用戶無法在已授予管理這些功能的策略的應用程序之外訪問它們。

例如,在我的特定設備上,我可以選擇System Settings->Backup & reset->Factory data reset並清除所有內容。對於DevicePolicyManager公開的許多其他選項,也可以使用類似的情況。

使用設備管理API時,是否有辦法禁用這些內置功能,以便只有爲設備管理API註冊的應用才能執行這些功能?

回答

1

什麼,我專門後保護某些功能,使用戶可以不是一個應用程序的外部訪問他們已被授予政策,管理這些功能

沒有元設備管理(即,管理設備管理員)。

類似的情況下,可以爲許多由DevicePolicyManager

用戶必須做的DevicePolicyManager提供幾乎沒有能力暴露出的其他選項進行。

例如,用戶不能阻止攝像機從鎖定屏幕,用戶也不能阻止應用程序窗口小部件,這就是爲什麼我必須編寫一個實用程序來做到這一點(因爲我不想安裝來自Play商店的封閉源設備管理員)。

DevicePolicyManager上的大多數方法都圍繞密碼質量展開,用戶無法爲他/她自己的密碼設置策略並強制執行它們。

依此類推。

使用Device Administration API時,是否有辦法禁用這些內置功能,以便只有爲Device Administration API註冊的應用程序才能執行它們?

根據定義,只有設備管理員可以執行設備管理工作。但是,一個設備管理員無法阻止其他設備管理員。唯一的例外就是應用了最強設置的各種密碼質量設置。

+0

我理解你的例子中的相機,但肯定用戶可以通過設備設置屏幕擦除數據。我想要做的就是阻止用戶在已被授予權限的應用程序之外執行此操作。 – gonzobrains

+0

另外,是否可以允許已授予DevicePolicyManager特權的應用程序具有卸載功能,但不能強行停止?在查看Google的Api Demos示例時,看起來您可以分別獲取但不是一個或另一個。我只是想知道這是否可配置。 – gonzobrains

+0

@gonzobrains:「但肯定用戶可以通過設備設置屏幕擦除數據」 - 同意。你聲稱「許多其他*選項」也是可能的,我不同意。 「我想要做的就是阻止用戶在已獲得授權的應用程序之外執行此操作」 - 這是不可能的,除非通過設置應用程序的修改版本來消除這些選項。 – CommonsWare

相關問題