Android一键锁屏和清除数据代码实现

android 2.2引入了支持企业应用程序提供Android设备管理API。设备管理API提供了设备管理功能在系统级别。管理员也可以远程擦(即恢复工厂默认值)丢失或被盗的手机。
但对于实现这些功能需要引入设备超级管理员(device admin),具体2、看文档 Develop-->API Guides--->Administration

下面我们看实现:

首先创建MyAdmin类,继承DeviceAdminReceiver

自己无需实现任何东西

AndroidManifest.xml配置这个接收器


            


            
                
            
        
name填写自己类路径,此时sample_device_admin等会报错,我们需要在String.xml中说明

我是设备超级管理员,开启我后我可以锁屏。
    一键锁屏设置

java主方法实现

先声明DevicePolicyManager,包名import android.app.admin.DevicePolicyManager;真实代码为例

package com.example.lockscreen;

import android.app.Activity;
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 MainActivity extends Activity {
	private DevicePolicyManager dpm;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
		
	}
	/**
	 * 开启设备管理员
	 * @param view
	 */
	public void openAdmin(View view ){
		//声明一个意图,作用是开启设备的超级管理员
		  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 click(View view){
		ComponentName cn = new ComponentName(this, MyAdmin.class);
		if(dpm.isAdminActive(cn)){
			//设备管理员的api
			dpm.resetPassword("123", 0);
			dpm.lockNow();
//			dpm.wipeData(0);
//			dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);//删除sdcard数据 
		}else{
//			openAdmin(null);
			Toast.makeText(this, "请先激活管理员", 0).show();
		}
		
	}
	
	/**
	 * 卸载
	 * @param view
	 */
	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);
		
	}

}

最后,前台xml中

   

你可能感兴趣的:(常用工具类,Android学习总结)