2009-10-26 10 views
11

私のアプリは、インターネットにアクセスして、私はちょうどWiFi経由またはキャリアデータネットワークを介して、またはiPhoneのSDKは

Appleはその「到達可能性」の例を作っていないのいずれかの接続があるかどうかを検出したい無線LANやキャリアネットワークを検出します

https://developer.apple.com/iphone/library/samplecode/Reachability/

は、私はそれだけで無線LANではなく、キャリアネットワークを検出したと思います

誰も私を伝えることができ、最高の接続(接続のいずれかのタイプがありますかどうかを検出するために行われるいただきました! )

あなたの意見や感想を教えてください:

+1

これは少し古いです。 Tony Millerの新しいバージョンのReachabilityがあります。ここでは(https://github.com/tonymillion/Reachability) –

答えて

13

サンプルはまさに必要なものです。

Reachability.mをご覧ください。接続があるかどうかを教えてくれるし、接続の種類を教えてくれます。

+1

を使用しています。あなたの質問に具体的に取り組むためには、Reachabilityコードはあらゆる種類の接続を検出します、WiFiだけではありません。 Reachabilityクラスをプロジェクトにインポートし、Reachabilityオブジェクトをインスタンス化してそこから移動するだけです。 – Tim

9

接続可能かどうかだけを検出したい場合や、接続している場合はどのタイプの接続を使用しているかを検出したい場合は、到達可能性の例が多すぎる可能性があります。実際に、この例には、状態の変化を通知するコールバックを設定して使用する方法を示すコードも含まれています。

あなたが接続されているかどうか、使用している接続の種類を正確に示すソースコードのスニペットについては、hereという似たような質問に対する私の答えを見てみてください。

3

すべてのWebリソースにリクエストを送信すると、iPhoneは接続があれば使用し、Wi-Fiは(優先度が高い)ものを使用し、wifiが接続されていない場合はキャリアネットワークを使用します。 キャリアネットワークを妨げるコード設定はありません。

あなたがしなければならないすべて:

  • は、試験場所で信号を確認してください。
  • サファリに到達しようとしているリンクを確認し、問題のあるアプリがないことを確認します。
  • に連絡してくださいキャリアサポートリンクは
+0

この回答はiampathikです –

2

(キャリアネットワークを使用して確認するために)サファリで作業されていない場合、これらの技術は有用であるが、インターネットへのデバイスのパスが異なるいくつかの構成されますことを心に留めておきます接続のタイプ。たとえば、iPhoneまたはiPod touchはWiFiを使用してモバイルホットスポットに接続している場合があります。モバイルホットスポットには独自の3Gワイヤレス接続があります。したがって、WiFi接続の存在が3Gより高い帯域幅を意味すると想定することは安全ではありません。

0

到達可能性(アップルのサンプルコードと他の人の類似したコードの両方で、基盤となるSCNetworkReachabilityは、インターネットにアクセスできないこと、またはWiFi経由でインターネットにアクセスすること、またはモバイルデータ。

WiFiとモバイルデータの両方が利用可能な場合は、「WiFi」と表示されます。WiFiを使用しているときにモバイルデータが利用可能であることを知る方法はありません(モバイルWiFiがない場合はデータが利用可能です)飛行機モードがオンになっているかどうかを調べることはできません(WiFiとモバイルデータがオフの場合とは異なります)。

WiFiが利用可能であっても、ダウンロードにはWiFiが使用され、モバイルデータは使用されません。自宅でダウンロードを開始して1分後に放置すると、WiFiが消えてしまい、iOSが幸せに3Gを通じてダウンロードを続けることがあります。 3Gを禁止するために、ダウンロード呼び出しでフラグを設定することができます。エラーコードは-1009 =インターネットにアクセスできない、3Gが利用可能であるという記述はありません。

CTTelephonyNetworkInfoを使用すると、にはのモバイルデータがある可能性があります(モバイルデータのないiPod TouchまたはiPadではなく、デバイスにSIMがあります)。