我有支持Wifi的OBD2设备适配器。现在我想获得有关带有OBD2设备的Wifi的通知,这样我就可以开始与该设备通信并读取数据,并且无法使用OBD2设备进行Wifi。
当设备连接到OBD2端口时,wifi正在广播。我使用了Reachability类的示例代码。但我无法得到适当的通知。
我尝试使用SimplePingHelper代码。它适用于主线程,但它不与后台线程运行。 SimplePingHelper Source code
SimplePingHelper代码实际上使用Apple的SimplePing示例代码。 SimplePing Code By Apple
你可以帮助我使用这个代码,它可以用于后台线程吗?或者我可以通过其他方式来获取此通知?
答案 0 :(得分:1)
`使用Apple的默认可达性类:
下载可访问性项目在项目中复制Reachability.h和Reachability.m文件。
并在Application委托文件中设置此方法。
- (无效)initializeRechabilityObeserver { //在此处更改主机名以更改监控服务器 hostReach = [Reachability reachabilityWithHostName:@“www.apple.com http://www.apple.com”]; [hostReach startNotifier]; // [self updateInterfaceWithReachability:hostReach];
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
//[self updateInterfaceWithReachability: internetReach];
wifiReach = [Reachability reachabilityForLocalWiFi] ;
[wifiReach startNotifier];
//[self updateInterfaceWithReachability: wifiReach];
}
答案 1 :(得分:0)
使用Apple的默认可访问性类:
下载可访问性项目在项目中复制Reachability.h和Reachability.m文件。
并在Application委托文件中设置此方法。
-(void)initializeRechabilityObeserver
{
//Change the host name here to change the server your monitoring
hostReach = [Reachability reachabilityWithHostName: @"www.apple.com <http://www.apple.com>"];
[hostReach startNotifier];
//[self updateInterfaceWithReachability: hostReach];
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
//[self updateInterfaceWithReachability: internetReach];
wifiReach = [Reachability reachabilityForLocalWiFi] ;
[wifiReach startNotifier];
//[self updateInterfaceWithReachability: wifiReach];
}
要获取可更改性更改通知,请使用以下代码:
在Application didFinishLaunching
中添加此通知方法- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
internetReachable = [Reachability reachabilityForInternetConnection] ;
[internetReachable startNotifier];
}
并添加此方法:
- (void)reachabilityChanged: (NSNotification* )note
{
NSLog(@"Reachability changed");
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
[self updateInterfaceWithReachability: curReach];
}
答案 2 :(得分:0)
可达性仅检测iOS设备本身的网络可用性 此外,Apple不允许应用进行任何Wi-Fi扫描,因此没有公共API可以执行此操作。
您的OBD2设备适配器是否通过电缆或本地Wi-Fi物理连接到iOS设备? 我认为您应该关注如何与iOS中的外部OBD2设备进行通信。