私のアプリの機能の1つは、インターネットを介してデータを送信します。データを送信する前に、接続が存在するかどうかを確認します。
private boolean isConnected() {
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo.State val1 = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
NetworkInfo.State val2 = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
return NetworkInfo.State.CONNECTED.equals(val1) || NetworkInfo.State.CONNECTED.equals(val2);
}
これは、エミュレーターと私がテストしたいくつかの実際のデバイスで完全に正常に機能しました。NullPointerException
次に、クライアントからエラーレポートを受け取りました。調査の結果、はgetState
オンラインであることが判明しましたTYPE_MOBILE
。
どうやら、3G(WiFi専用タブレット)を搭載していないデバイスにconnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
戻ってきたようです。null
Nexus 7エミュレーターでテストしましたが、このエラーは発生しませんでした。
したがって、私が興味を持っているのは、明示的に3Gを持たないAVD(つまり、WiFi専用デバイスのAVD)を作成して、そのようなシナリオを調査/テストできるようにすることです。エミュレータオプションに何も見つかりませんでしたが、間違った場所を探しているだけかもしれません。これも可能ですか?