我想确定我的应用程序是否是第一次运行,因此很难绕过它。
首选项或空文件方法不起作用,因为您可以简单地清除应用程序数据或删除空文件。
我也想离线做,所以服务器检查也不起作用。
也许可以在apk的安装中添加一些代码,这样它只会运行一次。
所以我最好的选择是在周围产生很多空文件,并希望用户不会找到它们,但这很混乱。
以前有人做过吗?有什么建议么?
我想确定我的应用程序是否是第一次运行,因此很难绕过它。
首选项或空文件方法不起作用,因为您可以简单地清除应用程序数据或删除空文件。
我也想离线做,所以服务器检查也不起作用。
也许可以在apk的安装中添加一些代码,这样它只会运行一次。
所以我最好的选择是在周围产生很多空文件,并希望用户不会找到它们,但这很混乱。
以前有人做过吗?有什么建议么?
首选项或空文件方法不起作用,因为您可以简单地清除应用程序数据或删除空文件。
一种可能性是BroadcastReceiver
在您的清单中注册一个您实际上并没有用于任何事情的 ,。PackageManager
在您的应用程序首次运行时,通过和禁用该接收器setComponentEnabledSetting()
。在以后的运行中,您可以通过和确定是否BroadcastReceiver
已经禁用。PackageManager
getReceiverInfo()
如果用户卸载并重新安装应用程序,应用程序将恢复到原来的状态。有根设备的用户也可以克服这个问题。否则,这应该是相当可靠的。
我知道您说过您不想要文件,但是如果您将它们创建为本地内部存储,则用户无法删除它们,因为除非它是根电话,否则他们将无法访问。清除数据“可能”会删除它们。
还有另一种解决方案,但它很长。使用 SQLite 数据库。它是本地的,我认为它不能被删除,否则整个应用程序将崩溃