2014-10-27 3 views
1

Я создаю приложение с моей командой для робота, чтобы оно управлялось мобильным устройством. Он отлично работает на моем телефоне, но теперь, когда я портировал приложение на Android Wear, поток, который позволяет мне подключиться к серверу на моем малине Pi, не работает. Есть ли способ заставить эту нить работать?Android wear не запускает нить

Код:

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 (не мог заставить его форматировать хорошо в редакторе)

ответ

3

Две проблемы с подходом:

  1. NetworkOnMainThreadException - вам не может выполнять сетевые операции в основном потоке (UI) на устройствах Android 4.0+.
  2. A ndroid Wear устройства не могут напрямую подключаться к любой интернет-адрес - вы должны использовать Wearable Data Layer для передачи информации в приложении телефон и иметь его подключения/передачи информации на сервер

Во многих случаях, в том числе то, что вы» d хотите сделать для управления роботом, вы, вероятно, захотите использовать messages, чтобы передать легкую команду из приложения Watch to your phone.