问题描述
我正在构建一个我想防止用户从应用程序信息中禁用或卸载该应用程序的应用程序。 该应用将手动分发(不会在游戏商店中分发),并且只会安装在组织设备上。
我可以通过以下方法防止应用程序的卸载:
- 根设备
- 将应用程序安装在/ system / priv-app文件夹中
- 取消设备的根目录
成功执行上述步骤后,“卸载”按钮不可见,但“禁用”按钮在那里。 还有防止“禁用”选项的类似方法吗?
谢谢
1楼
从理论上讲,使用并实现DeviceACTIONReceiver的ACTION_DEVICE_ADMIN_DISABLED注册。 在您的onDisabled(Context上下文,Intent intent)方法中,使用包管理器重新启用该应用程序并发送适当的消息。
我认为您可能应该更仔细地研究设备管理员,看看是否可以在这种情况下实现您的应用程序所执行的任何操作,而无需root手机。 根植电话并安装某种私人应用程序听起来像一场噩梦,这将需要您完成额外的工作,而且还可能给用户电话带来巨大的安全漏洞。
2楼
您没有编写应用程序的功能。 我认为您应该向他们询问不要卸载或禁用它,而不是取消禁用该应用程序的可能性。 我认为您不能阻止他们在不进行更多系统修改的情况下禁用您的应用程序。
无论做什么,它都可能会向您的服务器报告,而缺少报告则意味着它们不合作(或无法访问您的网络)。 如果您给他们设备,则应请他们根据自己的规则使用它们。 例如,它可以定期记录其存在。 如果缺少这些日志(本地或远程设备),则用户不遵守规则。 不需要知道他们到底在做什么。 但是您知道他们当时没有遵守规则。
我认为您应该考虑使用Administration API,请参阅 ,但是我不喜欢您要完成的工作。