<receiver android:name="com.cbooy.mmpa.receiver.MyAdmin"
            android:permission="android.permission.BIND_DEVICE_ADMIN" >
            <meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/device_admin_sample" />

            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-policies>
    <limit-password />
    <watch-login />
    <reset-password />
    <force-lock />
    <wipe-data />
    <expire-password />
    <encrypted-storage />
    <disable-camera />
  </uses-policies>
</device-admin>
public class LockScreenUtil {

    private static Context context = null;
    
    /**
     * 设置策略服务
     */
    private static DevicePolicyManager dpm = null;
    
    private LockScreenUtil(){
        
    }

    public static LockScreenUtil inst(Context ct) {
        
        context = ct;
        
        dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
        
        return new LockScreenUtil();
    }
    
    /**
     * 开启锁屏,先判断是否开启权限
     */
    public void lockScreen(){
        
        ComponentName who = new ComponentName(context,MyAdmin.class);
        
        if(dpm.isAdminActive(who)){
            
            // 锁屏
            dpm.lockNow();
            
            //设置屏蔽密码
            dpm.resetPassword("123", 0);
            
            //清除Sdcard上的数据
            // dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
        }else{
            // 没有权限,需要先开通
            Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
            
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, who);
            
            //开启管理员权限
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"一键锁屏");
            
            context.startActivity(intent);
        }
    }
    
    public void removePermission() {
        
        // 1.先清除管理员权限
        ComponentName mDeviceAdminSample = new ComponentName(context,MyAdmin.class);
        
        dpm.removeActiveAdmin(mDeviceAdminSample);
        
        // 2.普通应用的卸载
        Intent intent = new Intent();
        
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        
        intent.setAction("android.intent.action.VIEW");
        
        intent.addCategory("android.intent.category.DEFAULT");
        
        intent.setData(Uri.parse("package:" + context.getPackageName()));
        
        context.startActivity(intent);
    }

 

posted on 2015-08-18 17:45  cbooy  阅读(161)  评论(0编辑  收藏  举报