微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:收听应用安装/升级的广播消息

使用Lookout应用程序(https://play.google.com/store/apps/details?id=com.lookout),我看到每次安装或升级应用程序时,它会自动扫描此应用程序,以确保它不是恶意的.

按照Lookout,我写了一个简单的应用程序,每当安装或升级每个应用程序时,它会收听广播消息. AFAIK有一些IntentFilter类型的广播消息,它是:

> Intent.ACTION_PACKAGE_ADDED
> Intent.ACTION_PACKAGE_CHANGED
> Intent.ACTION_PACKAGE_INSTALL

我希望Intent.ACTION_PACKAGE_ADDED是答案,但它是错误的(ACTION_PACKAGE_ADDED:设备上已经安装了一个新的应用程序包,数据包含包的名称,请注意,新安装的程序包没有收到此广播.)而ACTION_PACKAGE_INSTALL是弃用.

有谁能告诉我一个更好的方法吗?欢迎任何帮助.

解决方法

如果您正在安装应用程序A,设备上的所有其他应用程序将获得Intent应用程序A是新安装的应用程序,但不会使用A本身,因为它似乎没有任何用处.如果以后安装或更改其他应用程序,A将会播放广播.

如果您想了解安装应用程序或其他应用程序的最后一次安装或更新时间,可以随时使用PackageManager

PackageManager pm = context.getPackageManager();
 ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name",0);
 String appFile = appInfo.sourceDir; 
long installed = new File(appFile).lastModified();

这里的app.package.name是您想要找到安装时间的应用程序的包名称.如果您要将其用于您的应用程序,请传递您的应用程序的包名称.

原文地址:https://www.jb51.cc/android/312827.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐