在Android中,可以使用PackageManager
类来获取应用程序的安装时间和上次更新时间。以下是如何实现的一般步骤:
以微信为例:
- 获取一个
PackageManager
的实例。 - 使用
PackageManager
的getPackageInfo
方法,传入微信的包名(通常是com.tencent.mm
)来获取PackageInfo
对象。 - 从
PackageInfo
对象中读取firstInstallTime
属性和lastUpdateTime
属性。
下面是一个简单的示例代码片段,展示了如何获取微信app的安装时间和更新时间:
try {
PackageManager packageManager = getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo("com.tencent.mm", 0);
// 安装时间(第一次安装时间)
long firstInstallTime = packageInfo.firstInstallTime;
Date installDate = new Date(firstInstallTime);
// 更新时间(最后一次更新时间)
long lastUpdateTime = packageInfo.lastUpdateTime;
Date updateDate = new Date(lastUpdateTime);
// 将毫秒数转换为实际日期格式或其他你需要的格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String installDateString = dateFormat.format(installDate);
String updateDateString = dateFormat.format(updateDate);
// 打印或在界面上显示安装时间和更新时间
Log.d("WeChat Install Time", installDateString);
Log.d("WeChat Update Time", updateDateString);
} catch (PackageManager.NameNotFoundException e) {
// 微信没有安装在设备上 或者 发生了其他错误
e.printStackTrace();
}
此代码假定您已经拥有必要的上下文 (Context
) 权限,并且它运行在具有正确权限的环境中。如果微信应用未安装,getPackageInfo
将抛出NameNotFoundException
异常。
对于普通应用来说,你不需要任何特殊权限就可以访问这些信息。但是,请确保在尝试调用getPackageManager()
时,你的代码是在拥有有效上下文的环境中执行,例如在Activity
或Service
中。
值得注意的是
重新刷机或格式化手机后,com.android.vending
(Google Play Store)的首次安装时间通常会发生变化。当您重新刷机或恢复出厂设置时,设备上的所有数据和应用程序都会被清除,并且系统将重置为新状态。
在这种情况下,一旦设备重新启动并且系统应用(包括 Google Play Store)被重新安装或恢复到其默认版本,PackageManager
中记录的关于com.android.vending
的firstInstallTime
值就会更新为这次安装的时间戳。
重要的是要了解Android设备上的“首次安装时间”实际上是指应用在当前用户设备上的首次安装时间,而不是应用本身发布的时间。因此,任何操作导致应用重新安装,无论是手动还是作为系统更新和恢复过程的一部分,都可能改变这个时间戳。所以,刷机或者重置手机来做坏事的用户,要被暴露了。。。Android获取UID的新思路
Google常见包名和启动页
应用名 | 包名 | 启动页 |
---|---|---|
com.facebook.katana | com.facebook.katana.LoginActivity | |
Chrome | com.android.chrome | com.google.android.apps.chrome.Main |
Gmail | com.google.android.gm | com.google.android.gm.ConversationListActivityGmail |
Google+ | com.google.android.apps.plus | com.google.android.apps.plus.phone.HomeActivity |
Maps | com.google.android.apps.maps | com.google.android.maps.MapsActivity |
Play Movies | com.google.android.videos | com.google.android.youtube.videos.EntryPoint |
Play Books | com.google.android.apps.books | com.google.android.apps.books.app.BooksActivity |
Play Games | com.google.android.play.games | com.google.android.gms.games.ui.destination.main.MainActivity |
Drive | com.google.android.apps.docs | com.google.android.apps.docs.app.NewMainProxyActivity |
YouTube | com.google.android.youtube | com.google.android.apps.youtube.app.WatchWhileActivity |
Photos | com.google.android.apps.plus | com.google.android.apps.plus.phone.ConversationListActivity |
Hangouts | com.google.android.talk | com.google.android.talk.SigningInActivity |
Play Store | com.android.vending | com.android.vending.AssetBrowserActivity |
Opera Mini | com.opera.mini.android | com.opera.mini.android.Browser |
Deezer | deezer.android.app | com.deezer.android.ui.activity.LauncherActivity |