0

我想确定我的应用程序是否是第一次运行,因此很难绕过它。

首选项或空文件方法不起作用,因为您可以简单地清除应用程序数据或删除空文件。

我也想离线做,所以服务器检查也不起作用。

也许可以在apk的安装中添加一些代码,这样它只会运行一次。

所以我最好的选择是在周围产生很多空文件,并希望用户不会找到它们,但这很混乱。

以前有人做过吗?有什么建议么?

4

2 回答 2

3

首选项或空文件方法不起作用,因为您可以简单地清除应用程序数据或删除空文件。

一种可能性是BroadcastReceiver在您的清单中注册一个您实际上并没有用于任何事情的 ,。PackageManager在您的应用程序首次运行时,通过和禁用该接收器setComponentEnabledSetting()。在以后的运行中,您可以通过和确定是否BroadcastReceiver已经禁用。PackageManagergetReceiverInfo()

如果用户卸载并重新安装应用程序,应用程序将恢复到原来的状态。有根设备的用户也可以克服这个问题。否则,这应该是相当可靠的。

于 2013-02-07T18:19:34.020 回答
-1

我知道您说过您不想要文件,但是如果您将它们创建为本地内部存储,则用户无法删除它们,因为除非它是根电话,否则他们将无法访问。清除数据“可能”会删除它们。

还有另一种解决方案,但它很长。使用 SQLite 数据库。它是本地的,我认为它不能被删除,否则整个应用程序将崩溃

于 2013-02-07T18:16:02.437 回答