Ios 检查目前是否使用了定位服务

Ios 检查目前是否使用了定位服务,ios,objective-c,core-location,jailbreak,iphone-privateapi,Ios,Objective C,Core Location,Jailbreak,Iphone Privateapi,我的目标是检查越狱的iPhone当前是否正在使用任何后台导航服务。 我主要浏览了CLLocationManager.h标题,但在所有其他CoreLocation标题中搜索了适当的方法。没有发现任何用处。还搜索了私有框架GeoServices中的方法。但是那一个太广泛了,我不知道去哪里搜索。 不过,我现在想通过检查手机是否显示位置来检查手机是否在后台使用位置 我将如何继续并检查它?以下是我在iOS 9中使用的内容。如果我没记错的话,appsUsingLocationWithDetails会返回为位

我的目标是检查越狱的iPhone当前是否正在使用任何后台导航服务。
我主要浏览了
CLLocationManager.h
标题,但在所有其他
CoreLocation
标题中搜索了适当的方法。没有发现任何用处。还搜索了私有框架
GeoServices
中的方法。但是那一个太广泛了,我不知道去哪里搜索。
不过,我现在想通过检查手机是否显示位置来检查手机是否在后台使用位置


我将如何继续并检查它?

以下是我在iOS 9中使用的内容。如果我没记错的话,
appsUsingLocationWithDetails
会返回为位置服务注册的所有应用的字典
LocationTechnologieUse
包含应用程序用于更新位置数据的一系列技术,但我不知道其值。可能是一些枚举,其值指示使用了GPS、WiFi热点、手机发射塔或其他东西。这其实并不重要,因为只有当应用程序目前使用位置服务时,阵列才会包含一些内容。下面是一个例子:

for (NSDictionary* app in [[CLLocationManager sharedManager] appsUsingLocationWithDetails].allValues)
{
    if ([app[@"LocationTechnologiesInUse"] count] > 0)
    {
        //the app uses location services
    }
}
您可能需要一些权限来访问这些信息。我的守护进程使用这些权限进行签名,布尔值设置为true

com.apple.locationd.authorizeapplications
com.apple.locationd.preauthorized
com.apple.locationd.effective_bundle
com.apple.locationd.status
com.apple.CoreLocation.PrivateMode

如果我的代码示例不适合您,请尝试使用它们。很长一段时间以来我都没有写过那段代码,不幸的是我没有记录所有的权利。我的守护进程已经用这些方法签名,上面的代码刚刚运行,因此可能需要或不需要某些方法。

CLLocationManager
中检查
appsUsingLocation
appsUsingLocationWithDetails
方法,我已经尝试过了。但是,我不知道它们的返回值是什么。我尝试了
id appsUsingLocation=[[objc_getClass(“CLLocationManager”)sharedManager]appsUsingLocation]
[appsUsingLocation count]
查看是否有应用程序使用它,但该值始终为零。你能提供一个你将如何做的代码示例吗?天哪!!!!!这是有效的;非常感谢你!仅将[[[%c(CLLocationManager)sharedManager]应用程序使用LocationWithDetails]所有值]中的NSDictionary*应用程序更改为
。是的,你至少需要一个这样的权利!如果没有,它就不工作。全部添加。疯狂道具