2

このコードを使用してシミュレータのインターネット接続を検出しようとしています

if (
    NetworkManager.networkManager.isConnected(NetworkType.WIFI) ||
    NetworkManager.networkManager.isConnected(NetworkType.CELLULAR)
) {
    //we have connection!!
    doSomething();
} else {
    //no connection =(
    showError();
}

ただし、これは常にfalseを返します。シミュレータは、NetworkType定数で識別されない別の種類のネットワークを使用しているようです。これは、VMWareが黒魔術による接続を可能にするためだと思います。

したがって、このコードに固執して、WiFiまたはセルラーネットワークを使用する実際のデバイスで機能することを期待するか、または必要なものに対して別のアプローチを見つける必要があるかどうかはわかりません。

私もこれをやってみました(パラメーターを渡さないでください)

NetworkManager.networkManager.isConnected()

ただし、PCにインターネット接続があるかどうかに関係なく、常にtrueが返されます。VMWareが再び私を荒らしていると思います。

それで、実際のデバイスでより良い結果を得るためにこれをどのように行うべきかについてのアドバイスはありますか?

4

1 に答える 1

0

さて、更新するだけです。ついにBBZ10を手に入れ、このコードを試す機会がありました。 エミュレーターがその機能を実際にエミュレートできない場合でも、期待どおりに機能するようNetworkManager.networkManager.isConnected(NetworkType.WIFI) です 。 NetworkManager.networkManager.isConnected(NetworkType.CELLULAR)

したがって、この機能が本当に必要な場合は、これを試してみてください。展開すると、実際に機能します。

于 2013-10-01T23:00:18.193 に答える