一键锁屏 设备管理器

class

package com.itheima.mobilesafe;

import android.app.Activity;
import android.app.admin.DeviceAdminReceiver;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class LockActivity extends Activity {
	/**
	 * 设备策略服务
	 */
	private DevicePolicyManager dpm;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
	
		openAdmin();
		
		lockScreen();
		
		finish();
	}
	/**
	 * 通过代码打开设备管理器
	 * @param view
	 */
	public void openAdmin() {
		// 声明一个意图,作用是开启设备的超级管理员
		Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
		ComponentName cn = new ComponentName(this, MyAdmin.class);
		intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, cn);
		// 劝说用户开启管理员
		intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
				"开启我把。开启我就可以锁屏了,开启送积分");
		startActivity(intent);
	}

	/**
	 * 锁屏
	 * 必须要手动添加到设备管理器才可以使用
	 * @param view
	 */
	public void lockScreen() {
		ComponentName who = new ComponentName(this, MyAdmin.class);
		if(dpm.isAdminActive(who)){
			dpm.lockNow();// 锁屏
		}else{
			Toast.makeText(this,"还没有打开原理员权限",1).show();
		}
		
//		dpm.resetPassword("111111",0);//设置屏幕打开秘密  密码如果为0 则取消密码
		//清除Sdcard的数据
//		dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
		//恢复出厂设置
//		dpm.wipeData(0);
	}
	
	public void uninstall(View view){
		 ComponentName cn = new ComponentName(this, MyAdmin.class);
		//可以移除管理员
		dpm.removeActiveAdmin(cn);
		//在是一般的软件卸载
		Intent intent = new Intent();
		intent.setAction("android.intent.action.UNINSTALL_PACKAGE");
		intent.addCategory("android.intent.category.DEFAULT");
		intent.setData(Uri.parse("package:"+getPackageName()));
		startActivity(intent);
	}
}

/*
 * public class DeviceAdminReceiver extends BroadcastReceiver
 * 特殊的广播接收者
 */
class MyAdmin extends DeviceAdminReceiver {

}


在res文件夹下 建一个xml文件夹 在建立

device_admin_sample.xm文件


  
    
    
    
    
    
    
    
    
  


 在AndroidManifest.xml 文件中添加


    	
            
            
                
            
        


你可能感兴趣的:(android)