我正在考虑开发一款应用程序,理论上, parent 会在他/她给 child 的手机上安装该应用程序。所以,主要问题是,我怎样才能阻止 child 卸载应用程序?关于如何解决这个问题的任何想法?我真的很怀疑这样的事情是否存在,但认为在这里问是找出是否有任何技巧的好方法。
编辑:
如果没有办法阻止这种情况的发生;这个怎么样:卸载后,做一些事情(例如发送电子邮件到以前配置的电子邮件地址)。这可能会阻碍 child 卸载应用程序,因为 parent 可能会发现它。当然,一个勤奋的恶棍只会打开飞行模式然后卸载,但我现在只是在寻找想法。
你遇到的问题是,当你想要的应用程序被描述为让 parent 监控他们的 child 时,你想要的听起来是良性的,从不同的角度来看,它听起来有点像恶意软件,因为你想要一个应用程序:
如前所述,如果没有自定义 Android 版本,您将无法阻止卸载。 There are events which are sent on the uninstall of an application但这些不能被被删除的应用程序拦截。 (所以我想你可以安装你的应用程序和一个看门狗应用程序,它们相互监控是否被删除,但是如果 child 去了没有信号的地方并删除了这两个应用程序,那么他们将悄无声息地消失,因为他们无法在没有互联网访问的情况下打电话回家。)
另一个问题是发送电子邮件。 Android 中发送电子邮件的常用方法是使用 Intent
切换到已填写地址和内容的电子邮件应用程序,但这需要用户确认才能发送,这对您没有帮助并且 child 可以拒绝发送警告电子邮件。
因此,当应用程序被删除时,您要做的不是在应用程序被删除时给家里打电话,而是每天在一切正常时给家里打电话;如果应用程序没有调用,那么家长就知道有问题了。你可以写一个 Service
这是打电话回家,每天由 AlarmManager
启动.
对于调用,您要么必须通过 HTTP 连接到 URL,要么编写自己的代码以使用 SMTP 发送电子邮件,因为您不能开箱即用地静默发送电子邮件。如果可能,我会使用前者,否则您将不得不存储自己的 SMTP 配置,因为您不能从另一个应用程序“借用”它。
您可以每天显示电子邮件应用程序并让 child 发送一切顺利的电子邮件,但问题是 child 每次都可以轻松地手动重新创建电子邮件并在应用程序不运行的情况下发送它,除非您甚至对每封电子邮件进行加密签名和验证。