8

私はアンドロイドプロジェクトに取り組んでおり、インターネット接続を確認する必要がありました。ウェブを検索したところ、stackoverflow で解決策が見つかりました。ただし、インターネットの状態を確認する際に問題があります。すでにどこでも検索しましたが、問題の解決策が見つかりません。

マニフェストは次のとおりです。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

インターネットが接続されているかどうかを確認するためのコードは次のとおりです。

cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
isConnected = (ni != null && ni.isAvailable() && ni.isConnected()) ? true : false;
}

問題は、TYPE_MOBILE データ トラフィックがアクティブであっても、ni 変数が常に null であることです。オペレーターのインターネット トラフィックにアクセスすることは、正しいテスト方法ですか? または、TelephonyManager を使用する必要がありますか? getNetworkInfo()[] を使用してデバッグしたため、奇妙です。TYPE_MOBILE の HSPA がそこに表示されますが、isAvalaible は常に false で、getState() = DISCONNECTED です。ただし、オペレーターのデータトラフィックが有効になっており、機能しています(他のアプリケーションで)

[編集] :ちなみに、エミュレータではなくデバイスで直接テストしています:)。

前もって感謝します。よろしく。

4

1 に答える 1

8

にはさまざまなバグがありますConnectivityManager

たとえば、 http: //code.google.com/p/android/issues/detail?id=11866およびhttp://code.google.com/p/android/issues/detail?id=11891を参照してください。

于 2011-09-29T10:29:16.817 に答える