Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 检测已启用wifi(无论是否已连接)_Ios_Gps_Wifi_Reachability - Fatal编程技术网

Ios 检测已启用wifi(无论是否已连接)

Ios 检测已启用wifi(无论是否已连接),ios,gps,wifi,reachability,Ios,Gps,Wifi,Reachability,对于GPS跟踪应用程序,在打开WIFI的情况下记录位置信号会产生非常不精确的数据或有间隙的数据 在开始跟踪之前,我使用可达性查询来检测wifi是否可用。问题在于,如果在进行该查询时启用了wifi但未连接到网络,则表明无法通过wifi访问互联网,但这并不表示设置应用程序中是否禁用了该设置。这意味着,如果用户开始运行并在运行中建立连接,他们将从wifi而不是GPS或手机网络获得位置信号。因此,这些数据点的精度可以大于10米,因此我想跳过该点。问题是,在wifi上,他们会有一个很大的空白期,在那里他们

对于GPS跟踪应用程序,在打开WIFI的情况下记录位置信号会产生非常不精确的数据或有间隙的数据

在开始跟踪之前,我使用可达性查询来检测wifi是否可用。问题在于,如果在进行该查询时启用了wifi但未连接到网络,则表明无法通过wifi访问互联网,但这并不表示设置应用程序中是否禁用了该设置。这意味着,如果用户开始运行并在运行中建立连接,他们将从wifi而不是GPS或手机网络获得位置信号。因此,这些数据点的精度可以大于10米,因此我想跳过该点。问题是,在wifi上,他们会有一个很大的空白期,在那里他们的信号不会被记录

那么,如何检查wifi是否已启用,但已断开连接

我已经阅读了我能找到的所有其他可达性讨论,但这似乎是一个空白,许多回答错误地表明可达性解决了这个问题


…我不想要求无线上网-只要提醒他们它已启用,这样在他们训练的某个时候,他们的位置数据可能会丢失(由于不准确)。

你问了很久了,但我刚刚遇到了这个问题

如果你想遵守苹果的规则,看起来没有任何方法可以做到这一点。sysctl和ioctl将不起作用,因为没有显示是否已启用WiFi的标志。例如,如果禁用WiFi或启用WiFi但未连接,则“启动”和“运行”的标志将相同


苹果自己的WiFi框架使用mach直接与内核通信,我怀疑苹果是否会允许在AppStore中使用此类代码。

这是可能的,但解决方案既模糊又难看。简单的回答是,如果您看到两个名为“awdl0”的接口,则WiFi已启用,只有一个接口已禁用


有关更完整的说明和示例代码,请参阅。

我正试图实现同样的目标: