Android:应用程序的易感性

问题描述:

我正在开发的当前应用程序要求我以任何方式知道用户当前正在与哪些应用程序进行交互(并且此处没有恶意目的)。也就是说,总是存在大量运行的应用程序进程和服务,但只有少数几个实际上是由用户实例化或监视的。Android:应用程序的易感性

我只想处理正在运行的用户知道正在运行的应用程序进程。例如,它可能是前台的当前应用程序,以及他们在后台播放的音乐。但是,我想忽略一直运行的SetCPU,Maps和键盘服务。

大部分信息都可以通过特定的应用程序的RunningAppProcessInfo实例,并在该范围内的importance字段中。对于前台应用程序,该字段将设置为IMPORTANCE_FOREGROUND。对于我的其他条件(例如音乐之一),有一个有点问题:存在IMPORTANCE_PERCEPTIBLE常数,它会完全处理这种情况,但它只是相关API 9及以上(姜饼,有效)。在仔细阅读Android源代码之后,似乎Android OS中这个特定的值被设置在非常低的水平,因此不是很容易回顾的东西。

经过那么长的文字墙后,我的问题是......我该如何解决这个问题?我需要能够区分一个音乐播放器(只是碰巧是我能想到的唯一例子),但同时我不能将我的应用程序仅限于那些正在运行姜饼的人。什么是开发人员可以做什么?

我不完全确定这对非root用户是否可能,但是如果您可以跟踪哪个应用程序在前台进行。然后,您可以安全地假定应用程序对用户来说很重要的任何流程和服务。

的润通应用程序在后台自动弹出(例如,在地图做到这一点有时)。如果用户从未打开应用程序,我们可以假定他们不关心它,我们可以将该服务标记为忽略。

您也可以权衡应用程序。以占用户时间的百分比来表示。然后,任何低于一定权重的应用都会被忽略。

+0

雅...我得出的结论是有实现的东西,我试图完成没有不草率的方式,所以我最有可能会向用户发出警告,对于那些在此背景下摔倒选择应用 - 但是积极使用的情况下,我正在生产的产品可能会出现偏差。我会的,但是,绝对把你的想法考虑到至少不完全忽略说的应用程序,即使我通过一定的余量我就走。 –