自從安卓
本篇通過大家熟悉的“一鍵鎖屏”的小項目實現來介紹裝置管理
一鍵鎖屏的實現原理:當按鎖屏鍵的時候,會發出一個廣播,當使用者介面接收到一個廣播的時候就可以實現鎖屏。而廣播的發送是我們調用DevicePolicyManager
鎖屏需要將應用程式提升為系統管理員的許可權,如果當前的應用具備系統管理員的許可權,則直接調用
將應用程式具備系統管理員許可權的做法:寫一個廣播的接收者,讓該廣播接受者去申請系統管理員的許可權,讓作業系統給廣播接收者授權(其實就是去啟用系統的授權組件),給使用者自己啟用。
實現流程:
關鍵的類:
1.DeviceAdminReceiver:裝置管理接收者,該類提供了系統發出的意圖動作。你的裝置管理應用程式必須包含一個DeviceAdminReceiver 的子類。代表著手機上的裝置管理員。
2.DevicePolicyManager 裝置管理員
以下是根據流程寫出的代碼:
在MainActivity 主類中:
MainActivity manger= componentName= ComponentName(, MyAdmin. active= } Intent intent = intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "----這是一鍵鎖屏啟用介面-----" startActivityForResult(intent, 0 }
定義並聲明你的策略:在res/xml/lock.xml中聲明所選擇的策略集,它將會被程式強行實行。如果一個程式嘗試調用在XML中沒有對應策略的方法,
這將會在運行時導致一個*SecurityException*異常。如果程式打算管理其他策略,那麼其他許可權,例如'_強制鎖(force-lock)。
如下程式碼片段在res/xml/lock.xml中聲明了密碼限制策略:
在 Android manifest(資訊清單檔) 中引用XML策略聲明:
整個Android manifest(資訊清單檔) :
啟用裝置管理員
好了。以上代碼部署在模擬器中運行後,點擊程式表徵圖,將來到使用者啟用視圖
如果使用者選擇"Activate",程式就會成為裝置管理員並且可以開始配置及強制執行策略。再次運行程式將會實現一鍵鎖屏。
如果使用者選擇"Cancle" 將會取消。
參考Google的API:
http://developer.android.com/guide/topics/admin/device-admin.html#lock