2

クライアントがアンドロイドでサーバーがローカルサーバーであるアンドロイド用のクライアントサーバーアプリを作成しています。エミュレーターでは正常に実行されますが、デバイスでは実行されません。実際にはクラッシュしませんが、サーバーからの応答を返します

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
    <title>ERROR: The requested URL could not be retrieved</title>
</head>
<body>
    <div id="content">

    <h1>ERROR</h1>
    <h2>The requested URL could not be retrieved</h2>
    <hr/>
    <P>
     While trying to retrieve the URL:
    <A HREF="http://10.0.2.2/test/testing.php">http://10.0.2.2/test/testing.php</A>
    <P>
     The following error was encountered:
   <UL>
       <LI>
            <STRONG>
         Connection to 10.0.2.2 Failed
         </STRONG>
     </UL>
         <P>
     The system returned:
     <PRE><I>    (110) Connection timed out</I></PRE>
         <P>
         The remote host or network may be down.  Please try the request again.
            <P>Your cache administrator is <A HREF="mailto:webmaster">webmaster</A>. 
     </div>
           <!--
          -- Unfortunately, Microsoft has added a clever new
          -- feature to Internet Explorer.  If the text in
           -- an errors message is too small, specifically
           -- less than 512 bytes, Internet Explorer returns
           -- its own error message.  Yes, you can turn that
           -- off, but *surprise* its pretty tricky to find
          -- buried as a switch called smart error
           -- messages  That means, of course, that many of
           -- Resins error messages are censored by default.
           -- And, of course, youll be shocked to learn that
           -- IIS always returns error messages that are long
           -- enough to make Internet Explorer happy.  The
           -- workaround is pretty simple: pad the error
           -- message with a big comment to push it over the
           -- five hundred and twelve byte minimum.  Of course,
           -- thats exactly what youre reading right now.
         //-->
         </body></html>

私は httpclient を使用しており、URL は 10.0.2.2 であり、インターネット許可と USB デバッグも使用しています。デバイスで実行したいだけです。モバイル デバイスで変更する必要がある設定や、Android マニフェスト ファイルなどの Android プロジェクトで変更する必要がある設定はありますか。

4

2 に答える 2

0

エミュレーターは、コンピューターと同じネットワーク上にあるため機能します。電話で URL を使用する場合は、サーバーのネットワークに接続する必要があります。ローカルIP アドレスを使用しているため、同じネットワーク上にいる必要があります。これは、携帯電話のワイヤレス接続を使用します。

他にできることは、外部IP アドレスを使用して、同じネットワーク上にいる必要がないようにすることです。詳細については Google で調べる必要がありますが、外部IP アドレス ( whatismyip.com ) を見つけて、接続先のポートがルーターの設定 (通常はポート 80) で開いていることを確認するだけでよいと思います。これにより、携帯電話の 3G または 4G を使用できるようになります。

于 2013-03-22T13:58:55.873 に答える