2013-11-14 13 views
12

私はWifiをサポートするOBD2デバイスアダプタを持っています。今私はOBD2デバイスとWifiについての通知を取得したいので、私はそのデバイスと話を始めることができ、データを読み取ることができ、OBD2デバイスとWifiは利用できません。Wifi対応デバイスのWifi可用性の通知を取得

デバイスがOBD2ポートに接続されている場合、wifiがブロードキャストしています。 Reachabilityクラスのサンプルコードを使用しました。しかし、私は適切な通知を得ることができません。

私はSimplePingHelperコードで試しました。それはメインスレッドでうまく動作しますが、バックグラウンドスレッドでは実行されません。 SimplePingHelper Source code

SimplePingHelperコードは実際にAppleのSimplePingサンプルコードを使用しています。 SimplePing Code By Apple

このコードで、バックグラウンドスレッドで動作することを教えてください。この通知を受け取るために確認できる他の方法は何ですか?

答えて

0

使用Appleのデフォルトの到達可能性クラス:プロジェクト内This link

コピーReachability.hとReachability.mファイルから

ダウンロード到達可能性プロジェクト。

このメソッドをアプリケーションデリゲートファイルに設定します。コードの下に到達可能性の変更通知の使用を取得するための

-(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];  
} 

アプリケーション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]; 
} 
+0

私はあなたがそれが無線LANで作業していないmentioned..Butてきたように同じコードを使用しています有効化されたデバイス – NSS

0

到達可能性のみを検出iOSデバイス自体のネットワークの可用性
さらに、AppleはアプリがWi-Fiスキャンを実行することを許可していないため、そうする公開APIはありません。

OBD2デバイスアダプタは、物理的にケーブルまたはローカルWi-FiによってiOSデバイスに接続されていますか?
私はあなたがiOSの外部OBD2デバイスと通信する方法に焦点を当てるべきだと思います。

1

`Appleのデフォルトの到達可能性クラスを使用します。プロジェクト内This link

コピーReachability.hとReachability.mファイルから

ダウンロード到達可能性プロジェクト。

このメソッドをアプリケーションデリゲートファイルに設定します。

- {// があなたの監視 hostReach = [到達可能性reachabilityWithHostNameサーバーを変更するには、ここでホスト名を変更しinitializeRechabilityObeserver(無効):www.apple "@。COM http://www.apple.com「]; [hostReach startNotifier]; // [自己updateInterfaceWithReachability:hostReach];

internetReach = [Reachability reachabilityForInternetConnection]; 
[internetReach startNotifier]; 
//[self updateInterfaceWithReachability: internetReach]; 

wifiReach = [Reachability reachabilityForLocalWiFi] ; 
[wifiReach startNotifier]; 
//[self updateInterfaceWithReachability: wifiReach];  

}

関連する問題