我不确定您的应用程序的流程,但据我了解:用户无需经过身份验证即可使用您的应用程序。但是,您希望未经身份验证的用户只能访问有限数量的功能。
您在 cmets 中提到,用户在每次全新安装应用时都必须验证其电话号码,无论之前是否使用过。因此,您可以像这样使用 SharedPreferences 来发挥自己的优势:
- 每次用户验证他们的电话号码时,将布尔值 (true) 保存到 SharedPreferences。
- 当用户想要访问仅对经过身份验证的用户可用的功能时,请检查保存的 SharedPreferences 布尔值以检查用户是否经过身份验证。
- 当用户退出时,记得删除/重置 SharedPreferences 布尔值。
要将布尔值保存到 SharedPreferences,您可以执行以下操作:
// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);
// create an editor object from your sharedpreferences object
SharedPreferences.Editor editor = sharedPreferences.edit();
// save your boolean value to a reference called "status"
editor.putBoolean("status", true);
// save changes
editor.apply();
要检索保存的布尔值,您可以执行以下操作:
// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);
// get saved boolean value, default value should be false
boolean ab = sharedPreferences.getBoolean("status", false);
要删除/重置 SharedPreferences 布尔值,只需将布尔值设置为 false,如下所示:
// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);
// create an editor object from your sharedpreferences object
SharedPreferences.Editor editor = sharedPreferences.edit();
// save your boolean value to a reference called "status"
editor.putBoolean("status", false);
// save changes
editor.apply();