当前位置 : 主页 > 网络编程 > 其它编程 >

Android项目:手机安全卫士(8)——管理员权限

来源:互联网 收集:自由互联 发布时间:2023-07-02
Android项目:手机安全卫士(8)——管理员权限1介绍关于手机防盗的功能,前面我们已经完成了一半,今天将要完成另一半,我们先来看看整体的功能描述:现在,我们还差两个功能:
Android项目:手机安全卫士(8)——管理员权限1介绍关于手机防盗的功能,前面我们已经完成了一半,今天将要完成另一半,我们先来看看整体的功能描述:现在,我们还差两个功能:远程删 Android项目:手机安全卫士(8)—— 管理员权限1 介绍

关于手机防盗的功能,前面我们已经完成了一半,今天将要完成另一半,我们先来看看整体的功能描述:

《Android项目:手机安全卫士(8)—— 管理员权限》

现在,我们还差两个功能:

  • 远程删除数据
  • 远程锁屏

需要说明一下,完成今天的任务,你就可以开发一款 App:一键锁屏,是不是很厉害,哈哈。

  • Android 项目:手机安全卫士(3)—— 主界面布局
  • Android 项目:手机安全卫士(4)—— 自定义(组合)控件、属性
  • Android 项目:手机安全卫士(5)—— 自定义弹窗
  • Android 项目:手机安全卫士(6)—— 手机防盗设置向导
  • Android 项目:手机安全卫士(6)—— 手机防盗设置向导(二)
  • Android 项目:手机安全卫士(7)—— 手机防盗功能

项目源码地址(实时更新):https://github.com/xwdoor/MobileSafe

2 管理员权限

不管是远程删除数据,还是远程锁屏,都需要系统的管理员权限,既然如此,那让我们先来看看怎么获取管理员权限。 首先,创建一个 Receiver:AdminReceiver,继承自 DeviceAdminReceiver,看清楚哦,不是继承自 BroadcastReceiver:

/** * Created by XWdoor on 2016/3/9 009 10:03. * 博客:http://blog.csdn.net/xwdoor */ public class AdminReceiver extends DeviceAdminReceiver { }

这个 Receiver 什么都不做,只是一个傀儡,重点在于它在清单文件 AndroidManifest.xml 中进行注册时的配置,如下所示:

需要注意几点,需要配置一个权限属性:android:permission="android.permission.BIND_DEVICE_ADMIN",除此之外,我们还需要设置它的配置数据,标明我们将需要那些操作,在这里,我们创建一个 xml 配置文件:device_admin.xml,内容如下:

除了这两个权限之外,其实还有其他很多的权限,如设置锁频密码、禁用摄像头、加密存储卡 等策略,这里我们只用到两个。好了,这些准备工作做完,我们就可以获取并激活管理员权限了。

3 激活管理员权限

配置好参数之后,就需要在代码中提示用户激活权限了,首先在 BaseActivity 中初始化设备管理器:

// 设备策略管理器 mDPM = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); // 初始化管理员组件 mDeviceCompOnentName= new ComponentName(this, AdminReceiver.class);

然后添加激活管理员权限的方法,如下:

/** * 激活超级管理员权限 设置->安全->设备管理器 */ public void activeAdmin() { Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceComponentName); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "手机安全卫士-手机防盗,您的好帮手,值得拥有"); startActivity(intent); showToast("请先激活手机防盗的管理员权限"); }

然后在手机防盗界面 AntiTheftActivity,添加判断,并提示用户激活:

//如果没有激活权限,提示激活 if(!mDPM.isAdminActive(mDeviceComponentName)){ activeAdmin(); }

《Android项目:手机安全卫士(8)—— 管理员权限》

4 远程锁屏

有了上面的准备,锁屏就简单了,直接调用锁屏的 api 即可:

else if ("#*lockscreen*#".equals(msg)) { //远程锁屏 lockNow(context); abortBroadcast(); } /** * 立即锁屏 */ public void lockNow(Context context) { // 设备策略管理器 DevicePolicyManager mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); // 初始化管理员组件 ComponentName mDeviceCompOnentName= new ComponentName(context, AdminReceiver.class); if (mDPM.isAdminActive(mDeviceComponentName)) { mDPM.lockNow();// 立即锁屏 //mDPM.resetPassword("123456", 0);// 重新设置密码, 传""取消密码 } }

5 删除数据

同样,也是调用 api 即可

else if ("#*wipedata*#".equals(msg)) { //删除数据 wipeData(context); abortBroadcast(); } /** * 清除数据 */ public void wipeData(Context context) { // 设备策略管理器 DevicePolicyManager mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); // 初始化管理员组件 ComponentName mDeviceCompOnentName= new ComponentName(context, AdminReceiver.class); if (mDPM.isAdminActive(mDeviceComponentName)) { mDPM.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);// 清除内部数据和sdcard } }

6 总结

今天的内容是干货有木有,可以做一键锁屏了,可以设置锁频密码、禁用摄像头、加密存储卡了,很兴奋吧。

最近的学习强度增加了,是因为需要抽出时间做其他事,所以节奏加快了。

  • Android 项目:手机安全卫士(3)—— 主界面布局
  • Android 项目:手机安全卫士(4)—— 自定义(组合)控件、属性
  • Android 项目:手机安全卫士(5)—— 自定义弹窗
  • Android 项目:手机安全卫士(6)—— 手机防盗设置向导
  • Android 项目:手机安全卫士(6)—— 手机防盗设置向导(二)
  • Android 项目:手机安全卫士(7)—— 手机防盗功能

项目源码地址(实时更新):https://github.com/xwdoor/MobileSafe

上一篇:如何理解yieldPython提高班
下一篇:没有了
网友评论