在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中。
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 |