私のAndroidプロジェクトには、「MainActivity.java」という1つのアクティビティしかありません。同じパッケージ「GetSocket.java」に別のクラスファイルを追加しました。
GetSocket.javaの機能は、Webサイトでホストされている特定のサーバーへのソケット接続を介して文字列を返すことです。GetSocket.javaは、Javaアプリケーションとして単独で実行する場合は問題なく機能します。
しかし、Androidアクティビティから使用して呼び出すと、意図したメッセージが返されません。StackTraceも取得できない例外を除いて、失敗するだけです。
これは、Android4.1バージョンで実行した場合の結果です。
しかし、同じコードがAndroid 2.2で機能し、意図したメッセージを受け取ります。
MainActivity.java
public class MainActivity
{
TextView t= (TextView) getViewById(R.id.textView1);
//..
//some code
//..
String msg=GetSocket.getMessage();
//..
//some more code
//
}
GetSocket.java
public class GetSocket
{
public static String getMessage()
{
String b;
Socket s=new Socket("<IP-Address",<Port-number>);
InputStream i=s.getInputStream();
int length=i.read(b)
return b;
}
}