安全卫士11————设备管理器,锁屏、初始化手机

获取系统设备管理器的方法
1.新建一个类继承DeviceAdminReceiver

public class AdminReceiver extends DeviceAdminReceiver {
}
2.AndroidManifest中注册

<receiver android:name=".receiver.AdminReceiver"
    android:label="@string/sample_device_admin"
    android:description="@string/sample_device_admin_description"
    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>
3.获取设备管理器和设备管理组件

//获取设备管理器
DevicePolicyManager mDPM= (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
//获取设备管理组件
ComponentName mDeviceAdminSample= new ComponentName(context,AdminReceiver.class);
4.使用方法
a 锁屏 

mDPM.lockNow();//立即锁屏
a_2 锁屏并设置解锁密码

//重新设置解锁密码,并不允许有其他的设备管理器
mDPM.resetPassword("12345",0);
b 清除数据,恢复出厂设置

mDPM.wipeData(0);//清除数据,恢复出场设置

5设备管理器使用的时候需要去在android手机设备管理器中激活
所以为了用户体验的优秀当设备管理器没有激活的时候设置一个弹窗
这里使用SnackBar

首先添加引用
C:\Users\admin\AndroidStudioProjects\NewGoal\app\build.gradle

compile 'com.android.support:design:23.1.1'

然后就可以直接使用了

Snackbar.make(llLost, "请选择激活软件!", Snackbar.LENGTH_LONG)
        .setAction("激活", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
                intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
                intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                        "哈哈哈哈,我们有了超级设备管理器,好牛逼!");
                startActivity(intent);
            }
        }).setActionTextColor(Color.WHITE).show();

这里有一点 SnackBar的第一个参数需要是一个view  这里的llLost就是当前界面布局
所以需要初始化得到

llLost= (LinearLayout) findViewById(R.id.ll_lost);
上方红色字体可以直接进入设备管理器激活界面然后进行激活
对弈设备管理器是否已经激活的判断如下
在获取到设备管理器和设备管理组件分别为mDPM和mDeviceAdminSample后,判断代码如下

if(!mDPM.isAdminActive(mDeviceAdminSample)){
}//如果此设备管理器没有被激活

设备管理器可以完成很多功能
卸载软件

/*
卸载
*/
public void godie(View view){

    mDPM.removeActiveAdmin(mDeviceAdminSample);
//激活设备管理器的软件在设备管理器没有取消激活的情况下是无法被卸载的
//所以这里在卸载之前需要将设备管理器取消激活

    //卸载程序
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_DELETE);
    intent.setData(Uri.parse("package:"+getPackageName()));
    startActivity(intent);
}


一个完整的恢复出厂设置的demo

/*
清除数据,并恢复出厂设置
*/
public void clear(View view){
    if(mDPM.isAdminActive(mDeviceAdminSample)){

        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("提示");
        builder.setIcon(R.drawable.ic_launcher);
        builder.setMessage("点击确定您将清除数据,并恢复出场设置!");
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                mDPM.wipeData(0);//清除数据,恢复出场设置
            }
        });
        builder.setNegativeButton("取消",null);
        builder.show();
    }else{
        Snackbar.make(view, "请选择激活软件!", Snackbar.LENGTH_LONG)
                .setAction("激活", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
                        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
                        intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                                "哈哈哈哈,我们有了超级设备管理器,好牛逼!");
                        startActivity(intent);
                    }
                }).setActionTextColor(Color.WHITE).show();
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值