在我的安卓项目中,我只有一个活动-- "MainActivity.java“。我在同一个包"GetSocket.java“中添加了另一个类文件。
GetSocket.java的功能是它将通过套接字连接返回到网站中托管的特定服务器的字符串。如果单独作为Java应用程序运行,GetSocket.java工作得很好。
但是当我从Android的活动中调用它时,它并没有返回预期的消息,它只是失败了,并出现了一个异常,我也无法获取StackTrace。
请注意,这是在Android 4.1版本中运行时的结果。
但同样的代码也适用于Android2.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;
}
}
发布于 2012-09-27 20:34:02
很抱歉回复得太晚了。找到了我的解决方案的问题。从4.0开始,Android不允许通过UI线程进行套接字编程。我使用异步任务在单独的后台线程中处理套接字。啊,真灵。
发布于 2012-09-12 03:52:29
检查您的清单是否具有internet权限:)
https://stackoverflow.com/questions/12380850
复制相似问题