使用Lookout应用程序(https://play.google.com/store/apps/details?id=com.lookout),我看到每次安装或升级应用程序时,它会自动扫描此应用程序,以确保它不是恶意的.
@H_502_2@按照Lookout,我写了一个简单的应用程序,每当安装或升级每个应用程序时,它会收听广播消息. AFAIK有一些IntentFilter类型的广播消息,它是:
@H_502_2@> Intent.ACTION_PACKAGE_ADDED
> Intent.ACTION_PACKAGE_CHANGED
> Intent.ACTION_PACKAGE_INSTALL @H_502_2@我希望Intent.ACTION_PACKAGE_ADDED是答案,但它是错误的(ACTION_PACKAGE_ADDED:设备上已经安装了一个新的应用程序包,数据包含包的名称,请注意,新安装的程序包没有收到此广播.)而ACTION_PACKAGE_INSTALL是弃用. @H_502_2@有谁能告诉我一个更好的方法吗?欢迎任何帮助.
> Intent.ACTION_PACKAGE_CHANGED
> Intent.ACTION_PACKAGE_INSTALL @H_502_2@我希望Intent.ACTION_PACKAGE_ADDED是答案,但它是错误的(ACTION_PACKAGE_ADDED:设备上已经安装了一个新的应用程序包,数据包含包的名称,请注意,新安装的程序包没有收到此广播.)而ACTION_PACKAGE_INSTALL是弃用. @H_502_2@有谁能告诉我一个更好的方法吗?欢迎任何帮助.
解决方法
如果您正在安装应用程序A,设备上的所有其他应用程序将获得Intent应用程序A是新安装的应用程序,但不会使用A本身,因为它似乎没有任何用处.如果以后安装或更改其他应用程序,A将会播放广播.
@H_502_2@如果您想了解安装应用程序或其他应用程序的最后一次安装或更新时间,可以随时使用PackageManager
PackageManager pm = context.getPackageManager(); ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name",0); String appFile = appInfo.sourceDir; long installed = new File(appFile).lastModified();@H_502_2@这里的app.package.name是您想要找到安装时间的应用程序的包名称.如果您要将其用于您的应用程序,请传递您的应用程序的包名称.