Android应用程序首次运行
在我的应用程序中,我存储敏感用户数据(如银行详细信息),用户可以使用单独的密码锁定每个详细信息。我希望用户在安装后第一次运行应用程序时设置主密码,以便在忘记密码的情况下通过输入此主密码恢复数据 因此,当应用程序在安装后第一次运行时,会出现一个弹出窗口,要求他设置主密码,用户需要设置密码才能继续 但是,当手机重启后或关闭应用程序后启动应用程序时,他不应该得到弹出窗口 安装后第一次运行应用程序时,弹出窗口应出现一次,且仅出现一次 假设创建对话框的函数是Android应用程序首次运行,android,Android,在我的应用程序中,我存储敏感用户数据(如银行详细信息),用户可以使用单独的密码锁定每个详细信息。我希望用户在安装后第一次运行应用程序时设置主密码,以便在忘记密码的情况下通过输入此主密码恢复数据 因此,当应用程序在安装后第一次运行时,会出现一个弹出窗口,要求他设置主密码,用户需要设置密码才能继续 但是,当手机重启后或关闭应用程序后启动应用程序时,他不应该得到弹出窗口 安装后第一次运行应用程序时,弹出窗口应出现一次,且仅出现一次 假设创建对话框的函数是setMasterPassword(),第一次运
setMasterPassword()
,第一次运行时在哪里调用此函数
android是否有任何参数来确定该应用程序是新安装的
或者我应该只使用偏好变量来检查这一点吗?{类似于将PreferenceVariable中的计数器初始化为0,然后在onCreate()中检查此值,并且仅当计数器为0时调用setMasterPassword(),然后将计数器递增1,这样就不会再次调用它。}
最好的方法是什么
提前谢谢 我还试图找出是否存在“新安装”布尔值,但似乎没有类似的布尔值,因此您应该像folk一样选择共享首选项 附:顺便说一下,这是那个问题的重复 PS2:请记住,如果用户删除了应用程序中存储的所有信息,那么该检查也将被删除,因此您可以再次输入 如何提高您的信息安全性:
substr()
可能就足够了)。如果它们是一样的,那么抓住信息。如果没有,请再次提示- 您不会将用户密码存储在任何位置。SharedReferences不会存储这个,只存储“firstTime”变量
- 如果用户转储应用程序的信息,再次输入密码不会减少您的信息
- 从资源管理器中打开该文件只会显示一组数字、符号和可能不可读的字节,这些都会破坏编辑器
substr()
可能就足够了)。如果它们是一样的,那么抓住信息。如果没有,请再次提示- 您不会将用户密码存储在任何位置。SharedReferences不会存储这个,只存储“firstTime”变量
- 如果用户转储应用程序的信息,再次输入密码不会减少您的信息
- 从资源管理器中打开该文件只会显示一组数字、符号和可能不可读的字节,这些都会破坏编辑器
<receiver android:name =".CLASSNAME">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
祝你好运。最好的方法可能是在安装时设置接收器
<receiver android:name =".CLASSNAME">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
祝你好运。因此单次通过身份验证的缺点。如果恶意用户设法获取/更改密码,您设置的任何机制都不会阻止他们。如果信息真的那么敏感,您可能希望启用第二种身份验证机制(安全问题、电子邮件确认等),从而消除单次身份验证的缺点。如果恶意用户设法获取/更改密码,您设置的任何机制都不会阻止他们。如果信息真的那么敏感,您可能需要启用第二个身份验证机制(安全问题、电子邮件确认等)。在某个地方找到了此代码,它对我非常有效。
所以,我想这也会对你有帮助
看一看
使用SharedReference存储firstrun值,并根据该值检入启动活动。如果设置了该值,则无需显示该对话框。否则,显示对话框并将firstrun标志保存在SharedReference中
在您的主要活动中:
public void onCreate(){
boolean firstrun = getSharedPreference("PREFERENCE", MODE_PRIVATE).getBoolean("firstrun", true);
if (firstrun){
[[ ...Display the dialog ]]
// Save the state
getSharedPreference("PREFERENCE", MODE_PRIVATE)
.edit()
.putBoolean("firstrun", false)
.commit();
}
}
在某个地方找到了这段代码,它非常适合我。
所以,我想这也会对你有帮助
看一看
使用SharedReference存储firstrun值,并根据该值检入启动活动。如果设置了该值,则无需显示该对话框。否则,显示对话框并将firstrun标志保存在SharedReference中
在您的主要活动中:
public void onCreate(){
boolean firstrun = getSharedPreference("PREFERENCE", MODE_PRIVATE).getBoolean("firstrun", true);
if (firstrun){
[[ ...Display the dialog ]]
// Save the state
getSharedPreference("PREFERENCE", MODE_PRIVATE)
.edit()
.putBoolean("firstrun", false)
.commit();
}
}
是的,如果我的手机掉到另一个人的手上,他就删除了