我正在爲Android設備編寫一個系統應用程序,我們向客戶提供。我們控制固件,並可以將應用程序添加到Android圖像,包括priv-app
文件夾。預裝的設備管理員應用程序
我們的應用程序的要求之一是它能夠重置我們的設備的密碼。爲了讓「普通」應用程序執行此操作,android需要將該應用程序設置爲設備管理員。
有什麼方法可以將我們的應用程序預先配置爲我們固件的設備管理員,或者是專門爲系統應用程序設置設備密碼的替代方法?
我正在爲Android設備編寫一個系統應用程序,我們向客戶提供。我們控制固件,並可以將應用程序添加到Android圖像,包括priv-app
文件夾。預裝的設備管理員應用程序
我們的應用程序的要求之一是它能夠重置我們的設備的密碼。爲了讓「普通」應用程序執行此操作,android需要將該應用程序設置爲設備管理員。
有什麼方法可以將我們的應用程序預先配置爲我們固件的設備管理員,或者是專門爲系統應用程序設置設備密碼的替代方法?
設備管理員應用程序可以使用隱藏的DevicePolicyManager.setActiveAdmin方法將自己設置爲管理員。爲此,應用程序需要需要平臺簽名的android.Manifest.permission.MANAGE_DEVICE_ADMINS權限。
將此應用程序放置在/ system/priv-app中的系統權限不是必需的 - 權限類型爲「簽名」。
我假設平臺簽名是必要的,否則用戶必須先接受設備管理員設置策略。
一旦管理員,應用程序可以設置任何策略,包括使用DevicePolicyManager.resetPassword方法設置密碼。
希望這會有所幫助。
/Marek Pola,Sony Mobile。
謝謝 - 這是一種魅力! –
「是否有任何方法將我們的應用程序預先配置爲我們固件的設備管理員」 - 在設備上必須有一個數據庫,用於跟蹤設備管理員已接受的內容。如果沒有其他的,找到並預先填充它接受你的應用程序。 – CommonsWare
好想法 - 因爲事實證明馬雷克的回答低於這個需求。 –