[Android] 申請系統許可權 DevicePolicyManager
阿新 • • 發佈:2018-12-23
如何獲取DevicePolicyManager例項
devicePolicyManager =(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); componentName = new ComponentName(this,MyAdmin.class);
首先要獲取系統裝置管理許可權
if(!devicePolicyManager.isAdminActive(componentName)){
Intent intent =
new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "----這是一鍵鎖屏啟用介面-----" );
startActivityForResult(intent, 0);
}
獲取Componentname例項中用到了MyAdmin.class,該類是自己實現的一個receiver,繼承DeviceAdminReceiver用於
public class MyAdmin extends DeviceAdminReceiver {
}
如果沒有特殊的需求,可以直接空類就可以了,有特殊需求,在重寫它的一些方法
然後我們需要在AndroidManifest.xml中定義該receiver,以及intent過濾
<receiver android:name=".MyAdmin" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/my_admin">
</meta-data>
<intent-filter>
<action
android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
</intent-filter>
</receiver>
android:resource=”@xml/my_admin” 我們在xml目錄下的my_admin.xml中定義我們都需要過濾哪些系統操作
常用的主要有
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<disable-camera/>
</uses-policies>
</device-admin>
從上面的名字大致也知道都是些什麼操作
如何執行重置鎖屏密碼呢?
devicePolicyManager.resetPassword(“123456”,0);
鎖屏?
devicePolicyManager.lockNow();