[英]How to detect if app has been installed for more than a day?
检测我的应用程序是否已安装超过一天的最简单方法是什么? 我想使用 Kotlin。
伪代码:
if(appInstalledForMoreThanADay)
{
print("this app has been installed on this device for more than 1 day")
}
您可以通过context.getPackageManager()
获取实际安装时间并获取PackageInfo
public long firstInstallTime
首次安装应用程序的时间。 单位按照
System#currentTimeMillis()
如果你喜欢,也有lastUpdateTime
正如亨利提到的,您可以使用共享首选项来保存安装日期,然后每次应用程序启动时检查当前日期是否比保存日期大一天。 它应该是这样的:
class MainActivity : AppCompatActivity()
{
companion object
{
const val INSTALLATION_DATE_KEY = "INSTALLATION_DATE_KEY"
const val MILLIS_IN_ONE_DAY = 86_400_000L;
}
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val sharedPref = getPreferences(Context.MODE_PRIVATE) ?: return
val installationTime = sharedPref.getLong(INSTALLATION_DATE_KEY, -1L)
if (installationTime == -1L) // app run for first time
{
with(sharedPref.edit()) {
val time = System.currentTimeMillis()
Log.d("MyTag", "First run. Time = $time")
putLong(INSTALLATION_DATE_KEY, time)
commit()
}
}
else
{
if (System.currentTimeMillis() - MILLIS_IN_ONE_DAY >= installationTime)
{
Log.d("MyTag", "App installed more than one day ago")
}
else
{
Log.d("MyTag", "App installed less than one day ago")
}
}
}
}
附注。 它不会是“安装”时间,而是“首次运行时间”。 因此,当用户安装该应用程序并在 2 天后第一次运行它时,它将无法工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.