请帮忙。当我尝试打开套接字我的Android应用程序死了。在android studio中,我的logcat是空的(以及手机上的单独logcat应用程序)。权限添加套接字是在一个单独的线程中。有针对性的sdk是16(这是一部旧手机)。应用程序启动但单击按钮时崩溃。 请注意:我不是一个程序员只是一个爱好者,这是一个arduino项目。我从未处理过android 1 - 2年(在16左右的某个地方:) :)所以我的猜测是我对我的知识背面兼容性有问题。 :)
public class MainActivity extends AppCompatActivity {
public class Communication implements Runnable
{
String ip, msg;
int port;
Socket socket;
PrintWriter out;
Context context;
public Communication(String ip, int port, String message, Context context)
{
this.ip=ip;
this.port = port;
msg = message;
this.context = context;
}
@Override
public void run() {
try {
socket =new Socket(ip, port);
out = new PrintWriter( socket.getOutputStream());
out.println(msg);
out.close();
socket.close();
Toast.makeText(context, "Message sent. Connection closed", Toast.LENGTH_SHORT);
}
catch(Exception e)
{
e.printStackTrace();
Toast.makeText(context, "Error", Toast.LENGTH_SHORT);
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
final Context context = this;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button lightOn = (Button)findViewById(R.id.lightOn);
lightOn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Communication("192.168.1.160", 80, "light=on", context)).start();
}
});
}
}