繁体   English   中英

如何检测应用程序是否已安装超过一天?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM