打开套接字时Android应用程序死机

时间:2017-12-05 19:55:30

标签: java android sockets

请帮忙。当我尝试打开套接字我的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();
        }
    });
}

}

0 个答案:

没有答案