0

PCとAndroidエミュレーターの間でデータを交換できる作業コードがあります。ここで、このアプリケーションを実際の Android デバイスでテストしたいと思います。つまり、Java サーバーを搭載した PC と Android フォンの間でテキストを交換したいと考えています。私のエミュレータでは、エミュレータの仮想 IP アドレスを使用していましたが、正常に動作していました。ただし、電話でアプリケーションをテストするために、電話と PC を同じネットワークに接続し、アプリケーションで電話の IP アドレスを使用しました。次に、電話にアプリケーションをインストールしましたが、接続が確立されませんでした。このアプリケーションを電話で使用するために、コードで他の変更を行う方法。これが私のAndroidコードです。

try {
        client = new Socket("123.236.165.50", 9999);
        printwriter = new PrintWriter(client.getOutputStream(), true);
        printwriter.println(messsage[0] + "\n");
        System.out.println("messsage::"+messsage[0]);
        printwriter.flush();
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

                serverMessage = in.readLine();
                if (serverMessage.equals("exit")) {
                    runOnUiThread(new Runnable() {
                        public void run() {
                            tv.setText("Thankyu visit again!!" + "\n");
                        }
                    });                     }   
                else {
                runOnUiThread(new Runnable() {
                    public void run() {
                        tv.setText(serverMessage.toString() + "\n");
                    }
                });

        }
     }
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return null;

また、マニフェスト ファイルでこの許可を与えています。

<uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
  <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

これは私の最初の Android アプリなので、助けてください!!!

4

1 に答える 1

3

Android と PC のサブネットが同じであることを確認してください。

初めて USB ケーブルで接続し、cmdポート転送で実行することをお勧めします。

adb forward tcp:7612 tcp:7612

ポート 7612 ランダムに取りました。

次のように、このポートを使用するようにコードを構成します。

client = new Socket("127.0.0.1", 7612);

このようにして、WiFi の問題ではなく、コードに問題があることを確認できます。

USB 経由ですべてが正常に機能する場合は、WiFi の問題を見つけてください。

それがあなたを助けることを願って、

于 2013-09-15T09:10:05.140 に答える