我正在ApplicationInfo使用packageManager.getInstalledApplications(0)获取对象列表,并尝试根据它们是否是系统应用程序对它们进行分类.
有一段时间我一直在使用这里描述的技术,但是在我的应用程序中看到之后,一些应用程序不在非系统应用程序列表中(例如Facebook,当可用时要求系统在SD上安装自己)卡).在下次阅读ApplicationInfo.FLAG_SYSTEM的实际文档并了解它实际上没有过滤系统应用程序之后,我现在正在寻找一种新方法.
我的猜测是,系统和非系统应用程序的UID之间存在很大差距,我可以收集这些差异来进行区分,但到目前为止我还没有找到答案.我也查看了其他标志,例如ApplicationInfo.FLAG_EXTERNAL_STORAGE,我支持API 1.5.
有没有人有这个真正的解决方案(不涉及FLAG_SYSTEM)?
嗨Stackoverflowers(我知道,这听起来不应该......)
好吧,我认为这几乎都是问题所在:我想抓住任何导致我的活动显示甚至部分隐藏的东西,例如电源选项,最近的应用程序托盘,低电量通知等等......我是很难检测到这些系统事件.
我很确定onPause()会在发生这样的事件时被调用,但它似乎是错误的......或者是我?
还有其他任何想法吗?...我最好不要单独挂钩每个系统广播动作,因为我希望尽可能地通用(并对任何隐藏我的活动的行为做出反应).
感谢您的任何意见!