需要密码才能卸载/删除应用程序
我想要求用户在被允许卸载/删除我的应用程序之前input密码。 我怎样才能实现这个function?
你可以这样做:
- 第一次安装应用程序时,安装一个单独的应用程序/软件包(“观察者”)。
- “watcher”包含的唯一类是侦听
ACTION_PACKAGE_REMOVED
的BroadcastReceiver - 将BroadcastReceiver添加到您也监听
ACTION_PACKAGE_REMOVED
应用程序中 - 当一个意图广播到您的接收器之一,检查是否仍然安装其他组件。 如果不是(用户只是卸载它),提示input密码 – 如果错误,重新安装其他组件。 如果这是正确的,卸载自己。
如果没有固件修改,这是不可能的。
您可以执行logcat并获取启动活动意向信息。 你会发现,在显示卸载活动之前,有一个文本消息,如: 开始活动:意图{行动= android.intent.action.DELETE dat =包:com.comodo.pimsecure cmp = com.android.packageinstaller / .UninstallerActivity}然后你可以popup一个活动要求input密码。
这是一个难题。 我至less可以想到一个非邪恶的用例。
例如被盗电话恢复应用程序 – 你希望阻止你的手机卸载应用程序。
在这种情况下,我可以想到两个明智的假设,这将阻止我实现你正在寻找的东西:
- 小偷不知道你的应用程序,所以不会尝试卸载它。
- 小偷知道你的应用程序,并closures它,直到他可以把它放到铁盒
*
重新安装操作系统。
*
对于外行人员: 铁盒会阻止设备发送或接收电磁信号。
当然,这个答案相当于你并不需要它 ,虽然我怀疑你已经考虑过了。
有可能的。 你可以用DeviceAdminReceiver
api来完成。 (我不怎么样)
作为所有build议的替代scheme。 通过下载applock,您可以在安装或卸载应用程序之前放置密码。 这将提供一个选项,以防止安装或卸载应用程序,包括所述的应用程序。 从playstore下载它并尝试一下。