Android磨损不启动线程

时间:2014-10-27 23:22:10

标签: android multithreading sockets wear-os

我正在与我的团队一起构建一个机器人汽车的应用程序,让它由移动设备驱动。它在我的手机上完美运行,但现在我已将应用程序移植到Android Wear,让我连接到Raspberry Pi上的服务器的线程不起作用。有没有办法让这个线程工作?

代码:

public class SocketConnect {

static DataOutputStream dOut;
static Socket socket;

public static void connect() {
    System.out.println("Got to Connect");
    new Thread() {
        public void run() {

            try {

                socket = new Socket("192.168.2.9", 8899);
                System.out.println("Trying at 2.9");
                dOut = new DataOutputStream(socket.getOutputStream());
            } catch (IOException e) {

                e.printStackTrace();
            }

        }

    }.start();

}
....further code

Logcat错误:http://pastebin.com/0BtF27p8 (无法在编辑器中将其格式化得很好)

1 个答案:

答案 0 :(得分:3)

您的方法存在两个问题:

  1. NetworkOnMainThreadException - 您无法在Android 4.0+设备上的主(UI)线程上执行网络操作
  2. Android Wear设备无法直接连接到任何互联网地址 - 您必须使用Wearable Data Layer向手机应用发送信息并让信息连接/传递给服务器
  3. 在许多情况下,包括您想要控制机器人汽车的操作,您可能希望使用messages将轻量级命令从Watch传输到您的手机应用程序。