Android 设备管理器 阻止用户取消激活
该方案测试可行,系统版本4.4.2。它算是借助android系统的一个bug,不确定在后续更高的版本中是否修复。
该功能和360防卸载功能一样的实现原理。
主要的参考资料是:http://bbs.pediy.com/showthread.php?t=193123
public class MantaAdminReceiver extends DeviceAdminReceiver { @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); } @Override public CharSequence onDisableRequested(Context context, Intent intent) { return "some message"; }
当用户在设置APP中取消激活某个app的时候,会弹出一个确认框。
弹出确认框的时候,会调用上面代码中的onDisableRequested()方法,在这一步方法中,我们放入自己的代码,阻止弹出框的后续操作,已满足阻止用户取消激活的操作
通过Activity切换的方式使设备管理器弹出的警示信息Dialog消失。使用户无法操作Dialog。
在onDisableRequested中,采用不同方式使用户在5秒时间内无法操作界面。因为5秒后Activity切换请求才会被系统执行。
三个方案:
1.调用锁屏
2.阻塞
3.悬浮框windowmanager.addView()