Android wiki : 18.DevicePolicyManager锁屏和清除数据


DevicePolicyManager 类:设备策略管理器   安全设备

Android 2.2 SDK提供了一个可管理和操作设备的API叫DevicePolicyManager,
使用这个API你可以接管手机的应用权限,对手机做出很多大胆的操 作,
比如锁屏、恢复出厂设置、设置密码、强制清除密码,修改密码、设置屏幕灯光渐暗时间间隔等操作。
这个API让你的程序直接掌握了系统的命脉。
但是,同样的道理,别人也可以做类似的程序,各程序之间的权限是不起冲突的~

首先,要想调用DevicePolicyManager,那么我们必须先要注册一个admin,如何注册呢,也是需要通过代码去注册。
有了admin权限,我们才可能对系统进行上述功能的操作。
其次,程序在启动激活的时候,会给用户相应提示,只有当用户点击“激活”后,我们的代码才能真正的运转。
再有,就是创建权限啊,监听了。


//dpm.lockNow();// 锁屏
//dpm.resetPassword(password, 0);// 设置屏蔽密码要和上面这个方法一起用
//dpm.removeActiveAdmin(who);取消某个应用的安全设备权限
//dpm.setPasswordMinimumLength(admin, length);//设置密码长度
//dpm.setPasswordHistoryLength(admin, length);


1:编写调用方法

    //一键锁屏
    public void lockscreen(View view){
    
        DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
        ComponentName  who = new ComponentName(this,MyAdmin.class);//2:创建    MyAdmin.class这个类
        if(dpm.isAdminActive(who)){//检查这个设置是否添加到安全设备中
        
            dpm.lockNow();//锁屏
            //dpm.resetPassword("", 0);//设置屏蔽密码,要和dpm.lockNow();方法一起用才会立刻锁定屏幕
            
            //清除Sdcard上的数据
            //dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
            //恢复出厂设置
            //dpm.wipeData(0);

        }else{
            //激活这个应用添加到设备管理器
            
            Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            //我要激活谁
            ComponentName  mDeviceAdminSample = new ComponentName(this,MyAdmin.class);
            
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
           //劝说用户开启管理员权限
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"哥们开启我可以一键锁屏,你的按钮就不会经常失灵");
            startActivity(intent);
            
                
            //.清除激活这个应用添加到设备管理器
            //ComponentName   mDeviceAdminSample = new ComponentName(this,MyAdmin.class);
            //dpm.removeActiveAdmin(mDeviceAdminSample);
            
        }

    }
    
    
2:创建    广播类MyAdmin 继承DeviceAdminReceiver
    /**
 * 特殊的广播接收者
 * @author Administrator
 *
 */
public class MyAdmin extends DeviceAdminReceiver {

}

3:在清单文件中配置这个特殊的广播接收者,用于监听权限的变化

    android:name="com.itheima.lockscreen.MyAdmin"
    android:description="@string/sample_device_admin_description"  //这里文字要按ctrl+1在values中添加这个字符串
    android:label="@string/sample_device_admin"
    android:permission="android.permission.BIND_DEVICE_ADMIN" >
             android:name="android.app.device_admin"
        android:resource="@xml/device_admin_sample" />  //5:在/res/xml 下创建device_admin_sample.xml

    
        
    



4:在res目录下创建xml目录

5:在/res/xml 下创建device_admin_sample.xml 表示这个应用可以管理的权限清单。


    
    
    
    
    
    
    
    
    
    


    
   

你可能感兴趣的:(android)