这是一个艰难的问题:假设某个应用程序中包含一个 SDK。这个应用程序在市场上已经有很长一段时间了,但是从最新版本开始就集成了 SDK。因此,客户可以通过两种方式访问包含 SDK 的应用程序:
- 此人之前没有该应用程序并下载最新版本
- 该人已经在没有 SDK 的旧版本中安装了应用程序,并使用 SDK 更新到新版本
现在当应用程序第一次打开时,SDK 如何判断应用程序是安装还是更新?
我想到了一些事情,但没有成功:
人们可以搜索在安装应用程序时创建的文件,并且从那时起从未更改过。只需查看上次修改的字段,您就知道应用程序的安装时间。我在 data/data/ 中找到了 lib 文件,但每次更新应用程序时它都会更新,所以没有用。编辑:导入文件从未被更改过的原因是无法访问文件创建时间,因此我们必须确保 last-modified == 创建时间
sdk 应该与 Android 1.6 兼容,因此它是 < API 9,我无法访问 PackageInfo.firstInstallTime 字段。
我认为我无法访问数据/应用程序来查看 apk 本身,但即使我可以,每次更新应用程序时都会替换 apk,所以 last-modified 会给我上次更新的时间,不是安装。
谢谢你的帮助。