需要密码才能卸载/删除应用程序

我想要求用户在被允许卸载/删除我的应用程序之前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下载它并尝试一下。