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

android 2.2引入了支持企业应用程序提供Android设备管理API。设备管理API提供了设备管理功能在系统级别。管理员也可以远程擦(即恢复工厂默认值)丢失或被盗的手机。

但对于实现这些功能需要引入设备超级管理员(device admin),具体2、看文档 Develop-->API Guides--->Administration

下面我们看实现:

首先创建MyAdmin类,继承DeviceAdminReceiver

自己无需实现任何东西

AndroidManifest.xml配置这个接收器

<receiver
            android:name="com.example.lockscreen.MyAdmin"
            android:description="@string/sample_device_admin_description"
            android:label="@string/sample_device_admin"
            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>

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

<string name="sample_device_admin_description">我是设备超级管理员,开启我后我可以锁屏。</string>
    <string name="sample_device_admin">一键锁屏设置</string>

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中<Button的onclick属性配置方法名就可以调用了。

   <Button
        android:onClick="openAdmin"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开启超级管理员" />

    <Button
        android:onClick="click"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="一键锁屏" />

     <Button
        android:onClick="uninstall"
        android:layout_alignParentBottom="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="卸载" />
时间: 2024-10-11 00:35:47

Android一键锁屏和清除数据代码实现的相关文章

Android一键锁屏源码

APK下载 源程序下载 锁屏流程如下(参考于Android一键锁屏开发全过程[源码][附图]) 源码参考于一键锁屏 源码 一共有2个Java文件: 1 package com.example.onekeylock.app; 2 3 import android.app.admin.DeviceAdminReceiver; 4 5 public class AdminReceiver extends DeviceAdminReceiver{} AdminReceiver.java 1 packag

android一键锁屏

原文地址:http://www.fengfly.com/plus/view-209437-1.html 要用到下面两个类: DeviceAdminReceiver 设备管理组件.这个类提供了一个方便解释由系统发出的意图的动作.你的设备管理应用程序必须包含一个DeviceAdminReceiver的子类.本程序中,就代表一个手机上的设备管理器. DevicePolicyManager 一个管理设备上规范的类. 大多数客户端必须声明一个用户当前已经启用的DeviceAdminReceiver. 这个

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

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

Android Device Administration 设备管理器——一键锁屏的实现

Android Device Administration 设备管理器--锁屏的实现 最近研究了一下安全这一块的内容,当然,我是比较水的,所以也拿不出什么好知识点,但是有一些冷门的东西我还是可以聊聊的,就拿这个锁屏来说吧,我们现在市面上有一些一键锁屏的软件 我们可以看到,是数不胜数的,所以,其实他一开始使用的时候,都需要请求设备管理器 我们可以看到,只有当我们激活的时候,我们才可以使用它,那么,他到底是什么东西呢?其实,当我们激活之后,我们可以在我们手机的设置--安全--设备管理器里面看到他的所

Android简易实战教程--第六话《开发一键锁屏应用2&#183;完成》

转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/51885687点击打开链接 上一篇,初步开发了这个应用,功能都有了(见http://blog.csdn.net/qq_32059827/article/details/51860900 点击打开链接 ).但是遗留了两个问题.1.还是无法卸载:2.必须手动去点击应用程序进入程序,再点击按钮,这显得很麻烦. 这一篇就解决上面两个问题,做出最好的效果. 首先解决无法卸载问题: 在清单文件

Android简易实战教程--第五话《开发一键锁屏应用》

转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/51860900 点击打开链接 Device Administration 对于这个应用,市场上很多,但是看一下评论就知道效果有多差了,因为99%一键锁屏应用没办法卸载.今天就开发一个小应用,实现轻松点击一键锁屏,同时支持卸载... 通查看谷歌原文档,有设备管理器的API,从这里可以抽取一些代码,开发出一个小应用,即即将介绍的<一键锁屏>. 根据文档翻译,获取设备管理器的大致步骤如

Android应用源码之一键锁屏

本项目是一个一键锁屏的小例子源码,安装以后会默认申请激活设备管理器,激活以后点击桌面图标即可实现一键锁屏,项目比较简单代码量也不多,想要学习锁屏或者设备管理器知识的朋友可以看一下,本项目默认编译版本4.4.2编码UTF-8 下载地址:http://www.devstore.cn/code/info/551.html 运行截图

一键锁屏

设备策略服务   DevicePolicyManager 要配置特殊的广播接受者 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&

android133 360 06 一键锁频,清楚数据

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button a