手机安全卫士------手机防盗页面之销毁数据&远程锁屏

销毁数据和远程锁屏的功能都要通过获得设备管理员权限才能实现

1.首先创建一个类,继承 DeviceAdminReceiver。看类名就会猜到,它可能是一个BroadCastReceiver。通过查看源代码确定这是一个广播子类。所以要到清单文件上注册。

查看Android官方API:

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

其中: description为描述信息;label为描述信息标签;

还要创建一个xml目录在资源目录下,创建device_admin_sample.xml

<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>

2.在Java文件中:

  • 开启设备管理策略的权限:

    • 创建一个Intent

      Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);

    • 选择要操作的控件名

      ComponentName mDeviceAdminSimple = new ComponentName(MainActivity.this,MyAdmin.class);

    • 激活设备管理策略

      Intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mDeviceAdminSample);

    • 添加描述语言

      intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,”开启权限,一键锁屏,拯救home键!”);

    • 完成,startActivity;

      startActivity(intent);

  • 创建一个设备管理策略

    private DevicePolicyManager dpm;

    dpm = getSystemService(DEVICE_POLICY_SERVICE);

    //一键锁屏,设置密码

    dpm.lockNow();

    dpm.setPassword(密码值,额外附加值设置为0);

    //清除数据

    dpm.wipeData(0) // 恢复出厂设置

    dpm.wipeDate(DevicePolicyManager.WIPE_EXTERNAL_STORAGE); //格式化SD卡

由于设备管理机制的打开,用户无法卸载当前的APP(好屌的样子~~)

需要我们单独提供卸载功能:

    //取消设备管理员权限
    manager.removeActiveAdmin(mDeviceAdminSimple);

    //卸载
    Intent intent = new Intent();
    intent.setAction("android.intent.action.VIEW");
    intent.addCategory("android.intent.category.DEFAULT");
    intent.setData(Uri.parse("package:" + getPackageName()));
    startActivity(intent);

版权声明:刚出锅的原创内容,希望对你有帮助~

时间: 2024-10-13 14:55:16

手机安全卫士------手机防盗页面之销毁数据&远程锁屏的相关文章

手机安全卫士------手机防盗页面之发送短信&amp;接收短信

功能需求: 接上一篇文章,如果sim卡变更,则发送一条报警短信给安全号码 接收从安全号码发来的短信,如果内容为报警指令,则根据相应的报警指令做出相应的操作 发送短信 1.创建一个SmsManager对象 SmsManager manager = SmsManager.getDefault(); 2.通过SharedPreferences获取安全号码 String number 3.创建短信内容: content 4.分割短信: 由于每条短信只能70个字,所以我们要把它分割一下:manager.d

手机安全卫士------手机防盗页面之完成向导页面的UI布局和动画

实现逻辑: 用户点击对话框的确定按钮,跳转页面的时候判断用户此前是否设置过手机防盗功能 如果设置过,直接跳转到防盗页面 如果没设置过,进入设置向导页面,进行相应的配置. 设置向导页面的效果图: 功能的技术点: 1.自定义文字风格 2.自定义按钮的背景 3.界面切换的动画 4.滑动屏幕切换页面 自定义文字风格 由于布局中有很多文字的颜色.字号.上边距.左边距等属性是相同的,因此,自定义一个文字风格,降低编码工作量 具体代码如下: <style name="LostFindText"

Android 7.0 以上保留数据去除锁屏密码的方法

在很多情况下,由于我们的疏忽,导致忘记了锁屏密码.也没有开启 USB 调试,内置存储中还有要保留的数据.我们需要在不清除数据的情况下删除锁屏密码.接下来我们就介绍该如何做. 注意事项 首先要注意,这个方法不能用于已经绑定了 data 加密的设备.例如 Motorola,设置了输入锁屏密码才能启动设备,这种方法就不再适用了.原因是这种类型的设备,使用了锁屏密码加密了 data 分区,导致无法修改 data 分区. 适用 Android Android 7.0+ 已测试机型 Moto Z Andro

手机安全卫士------手机防盗页面之自定义对话框&amp;MD5加密

功能需求: 用户点击主页面上的"手机防盗"按钮时,判断用户是否设置过密码. 如果没有设置过,则弹出输入密码对话框 如果设置过了,则弹出设置密码对话框 用户的密码要进行MD5加密之后再存储在内存中 技术点: - 自定义对话框的使用 - MD5加密的实现方式 - SharedPreferences的读写操作 自定义对话框 1.在layout目录下创建一个布局文件,把自定义的对话框布局设置成功 具体代码实现如下 设置密码对话框的布局代码: <?xml version="1.0

手机安全卫士------手机防盗页面之播放报警音乐&amp;GPS定位

播放报警音乐 1.把音乐文件放在res/raw文件中 2.创建MediaPlayer对象 MediaPlayer player = MediaPlayer.create(Context,R.raw.*); 3.设置声音为最高: player.setVolume(1.0f,1.0f); 4.设置声音为循环播放: player.setLooping(true); 代码: //报警音乐 MediaPlayer mediaPlayer = MediaPlayer.create(context, R.ra

手机安全卫士------手机防盗页面之sim卡绑定&amp;读取联系人

实现的功能: sim卡的绑定 读取联系人 技术点: sim卡绑定 获取开机广播 读取联系人 SimpleAdapter的使用 Activity间数据传递 sim卡绑定 思路: 创建一个TelephonyManager对象 TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 调用getSimSerialNumber()即可得到sim卡的序列号 Strin

【边做项目边学Android】手机安全卫士09-手机防盗界面设置向导1

本次主要做手机防盗界面的设置向导功能界面的设计. 需求: 当用户进入手机防盗界面时,判断用户是否已经进行过设置向导: 如果用户已经设置过手机防盗,则不再提示用户进入手机向导 若还没有设置,则提示用户进入设置向导界面. 具体实现: 1.当用户输入"手机防盗"密码正确时,进行判断用户是否进行过设置向导 /** * 判断用户是否进行过设置向导 * @return */ private boolean isSetup(){ return sp.getBoolean("isAlread

Android实例-手机安全卫士(三十一)-根据指令完成相应操作二(锁屏和数据清除)

一.目标 1.实现远程锁屏和数据销毁操作: 2.初步制作“一键锁屏”应用和优化. 二.代码实现 1.在Receiver包下新建一个类(取名LockScreenReceiver)继承DeviceAdminReceiver类(是BroadcastReceiver类的一个子类),并在清单配置文件配置receiver标签 (1)在receiver标签中,增加name.permission属性,name为新建类(LockScreenReceiver)的全路径名称,permission为必须的BIND_DE

Android实例-手机安全卫士(十八)-完成设置向导的4个UI和跳转事件

一.目标. 制作向导设置里面每一步的UI布局及点击事件控制. 1.使用自定义button背景.自定义组合控件.自定义文本样式等. 2.利用SharedPreferences对象,设置应用程序配置信息(向导设置完成后就不再进入)           二.代码实现. 1.在程序包下新建另外3个UI的类(分别为SetupWizard_ui_2.java.SetupWizard_ui_3.java.SetupWizard_ui_4.java),并在配置文件中注册Activity. 2.根据UI设计,在设