我正在使用Android
应用,其中所有内容都存储在本地。 (没有帐户注册系统)。如果用户点按了Clear data
下的Clear cache
和Settings > Applications > Manage Application
选项,则登机过程将再次显示,因为本地存储已重置。
开发人员有哪些选项可以检查用户是否真的是第一次使用并且没有重置或重新安装该应用?
答案 0 :(得分:1)
使用服务器 - 将唯一的设备ID发送到服务器并保存其状态。
没有服务器(在您的情况下) - 重新安装/清除缓存后保存它的唯一选择是添加读/写SD卡的权限并将其隐藏在他不会删除它的设备中。我将它隐藏在data / data / my_package_name_backwords中,如果我不做后缀,那么系统会在用户卸载我的应用程序时删除此文件夹。
答案 1 :(得分:1)
虽然我会反对这样的实施建议,但由于用户有权重置'应用程序以及重新访问第一个启动屏幕的预期行为,以下选项是可行的:
使用网络服务并在完成首次启动时存储设备ID。启动应用程序时,请检查数据库中是否已存在设备ID。要获取设备ID,我想参考this answer
答案 2 :(得分:0)
不允许用户通过ManageActivity清除应用程序数据。允许用户仅通过应用程序删除数据。
如果用户清除应用内的数据,下次用户启动应用时,将创建凭据并将其存储在本地!
如果您希望用户不要通过清除缓存来清除数据,那么创建一个虚拟活动,其中包含您的MainActivity,并在清单中声明此标记!
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:manageSpaceActivity="com.urapp.DummyActivity"
android:theme="@style/AppTheme" >
...
...
</application>
多数民众赞成!现在,当用户尝试清除数据时,它将启动您的MainActivity!