1. 程式人生 > >[Android] 申請系統許可權 DevicePolicyManager

[Android] 申請系統許可權 DevicePolicyManager

如何獲取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();