使用此问题中描述的方法,我可以获得在iOS设备上运行的应用列表.我知道PID并且可以访问他们的kinfo_proc结构.如何确定哪些是前台进程以及哪些是后台(假设我的应用程序是后台)?
我试图找出这个基于信息kinfo_proc(参见第1个链接),via kp_proc.p_priority,但看起来不可能从优先级推断背景/前景状态.
我真的不在乎这是否适用于AppStore Review,但我更喜欢一种没有越狱的方法(即私有API可以,但是哪些?).我希望这至少可以在iOS 5上运行
我考虑过编写一个简单的MobileSubstrate扩展,将其注入所有应用程序并且只是挂钩每个人applicationDidBecomeActive,但这需要越狱并且过于侵略.
我正在开发一个在后台作为服务运行的网络监视器应用程序.屏幕打开或关闭时是否可以收到通知/电话?
它通过使用以下代码存在于Android中:
private void registerScreenOnOffReceiver()
{
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(screenOnOffReceiver, filter);
}
Run Code Online (Sandbox Code Playgroud)
然后在打开/关闭屏幕时调用screenOnOffReceiver.iOS有类似的解决方案吗?
编辑: 到目前为止我发现的最好的是UIApplicationProtectedDataWillBecomeUnavailable(检测iPhone屏幕是否打开/关闭),但它要求用户在设备上启用数据保护(密码保护).