0

これを機能させるために、この1週間苦労しました。Android用のgenymotionエミュレーターであるこの素晴らしいツールをダウンロードしました。しかし、コード行からインターネットにアクセスできません。

        using( WebClient wbclient = new WebClient() )
        {
            try
            {                    
                String URI = "http://www.timeapi.org/utc/now"; // test purpose only
                Stream s = wbclient.OpenRead( URI );
                using( StreamReader r = new StreamReader( s ) )
                {
                    string str = r.ReadToEnd();
                }
            }catch(Exception ex)
            {
               // handle...
            }
        }

時間を返すシンプルなサービスです。このアドレスをゲスト デバイス genymotion (android 4.2.2 - API 17) のブラウザーに入力すると、ブラウザーは完全に動作し、時刻が返されます。しかし、上記のコードは例外「接続タイムアウト」をスローします。ゲスト デバイス内で上記の URL をブラウザから取得し、WebClient オブジェクトを介してコードでアクセスすると、時間を適切に表示し、例外をスローできるのはなぜですか? ありがとう

4

1 に答える 1

0

これはあなたのコードではありません。genymotion がインターネット上にないことを発見しました。この欠陥は公式の設計によるものです。これは、genymotion (VirtualBox のラッパー) が正しいアダプター (VirtualBox で設定したかどうかに関係なく) を切断し、代わりに独自の (障害のある) 「ホスト オンリー アダプター」ネットワーク設定を使用し、それを非表示にするために発生します。これ。

この非常に不公平な「バグ」(機能?) を修正するには、VirtualBox に移動し、名前で GenyMotion マシンを見つけてから電源を切り、「設定」ネットワークを右クリックして、「アダプター 2」(タブ) の下をクリックし、 「ネットワークアダプターを有効にする」にチェックマークを付けてから、「接続先:>ブリッジアダプター」をクリックします)

于 2013-11-27T11:40:17.200 に答える