簡體   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