在没有越狱的情况下,在iOS9上检测哪个应用处于前台

我试图在iOS9上logging用户个人应用的使用情况。

我宁愿它不会使用越狱有限的解决scheme ,自我解释。 在越狱手机上做这个应用程序的变化应该不难 。

这肯定不会在App Store上发布,因为苹果不会允许它。

我正在寻找任何可以做到这一点的私人API ,任何隐藏的iOS API可以用来做到这一点。 任何东西。

我已经看过:

  • 如何根据应用程序ID确定哪些应用程序是背景以及哪些应用程序是iOS上的前景
  • 如何知道应用程序启动和细节越狱iOS 7
  • 有没有一个私人的API能够检测到什么是iOS上的当前前景应用程序?
  • 如何在iOS8中监视在前台运行的应用程序?使用PrivateFrameworks SpringBoardServices

这被certificate是相对有用的 – 我们现在可以假设有一些额外的访问要求,可能是一个权利,但我们并不真正知道它应该是什么样子

  • 你可以使用SpringBoard服务框架或其他私人框架find单独的应用程序使用时间?
  • 找出活跃的应用程序或如果在Springboard上
  • 以编程方式检测哪个iOS应用程序对用户可见

然而,所有这些都certificate是无益的,因为苹果公司解决了这个 iOS8的安全漏洞,复制/访问当前最前面的应用程序包标识符的方法不再有效。

问题是 :是否有人知道使用不需要越狱的不同工具/漏洞的解决方法?

想法

  • 检查设备上运行的进程,并devise一种algorithm,能够识别尖峰意味着一个应用程序已经启动,这可能会工作,但它可能会是一个重大的痛苦的屁股。 提到这个解决scheme的问题:

    • 使用sysctl检测iOS上当前正在运行的应用程序 ,
    • 返回iOS中正在运行的后台应用程序/进程列表
    • 如何获取后台运行应用程序的名称
    • 在iphone中查找后台运行应用程序
  • 检查电话交通不知何故?
  • 不知道是否有一些我可以做的内核

这是我的这个问题的Reddit版本,如果有人想检查出来。 另外如果它有任何价值的话,下面是iOS9的运行时头文件和Apple私有API的列表 。

不幸的是,我正在寻找一个类似的解决scheme,并得出结论,至less在这个时候,没有已知的方法可以让你确定在iOS上的应用程序的使用。 即使是Good,Airwatch,MobileIron等MDM供应商似乎也无法做到这一点。 如果有人能够提出解决scheme,我很乐意看到它。

但是现在,我认为如果有人从事最新的iOS工作,我们会看到一个解决scheme。

sysctl仍然是打开的,但是它们阻止了某些select器的组合。 我在iOS 7上做了这个,并给了Apple Product Security代码。 他们不会修补iOS 7,而是依靠App Review。 iPhone 4是开放的。