2014-07-12 19 views
9

biz Android Wear den HttpURLConnection aracılığıyla ağa erişebilir olmadığını merak ediyorum?mu Android Wear desteği - alma EOFException

Aşınma kodu içinde HttpURLConnection kullanmayı denedim, EOFException alıyorum. Aynı kod düzenli Android telefondan çalışır. Android Wear'da olduğunda sadece sorun var.

Wear'da HttpURLConnection desteklenmiyorsa, Apache Http istemcisini veya başka bir şeyi kullanmalı mıyız?

Veya belki de geliştirme için uygulamayı başlattığım yol yanlış mı?

 URL url = new URL(myurl); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setReadTimeout(10000 /* milliseconds */); 
     conn.setConnectTimeout(15000 /* milliseconds */); 
     conn.setRequestMethod("GET"); 
     conn.setDoInput(true); 
     // Starts the query 
     conn.connect(); 
     int response = conn.getResponseCode(); 

Android manifest dosyasına izin ekledim. Yukarıdaki kodu bir AsyncTask'dan da çalıştırıyorum.

EOFException, conn.getResponseCode() adresinde gerçekleşir.

java.io.EOFException 
     at com.android.okhttp.internal.Util.readAsciiLine(Util.java:342) 
     at com.android.okhttp.internal.http.RawHeaders.fromBytes(RawHeaders.java:311) 
     at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:135) 
     at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:644) 
     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:353) 
     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:297) 
     at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:509) 

Yardımlarınız için çok teşekkür ederim.

cevap

10

Maalesef, no.

Android Wear uygulamaları, Internet'e doğrudan erişemez. İlgili el cihazları ile (MessageApi veya DataApi aracılığıyla) iletişim kurmalı ve ihtiyacınız olan herhangi bir HTTP isteğini gerçekleştirmesini talep etmelidir.


DÜZENLEME: Android artık beta, supports network requests yılında, yani HttpURLConnection orada çalışması gerekir, 2.0 giyin.

+0

Bu, aşınma cihazının internete erişmesi için, aşınma cihazının cep telefonu uygulamasıyla konuşmak zorunda olduğu anlamına gelir. Sonra cep telefonu uygulaması bir vekil olarak hareket etmek zorunda? – ssw

+0

@ssw Evet, kesinlikle. En azından şu an işler ayakta duruyor. – matiash

+1

Cevabınız için teşekkür ederiz. Ağ iletişimi öğelerinin desteklenmediğinden hala sözedemiyorum. Komik olan şey android aşınma geliştirici sayfası ağ şeyler desteklenmez olduğunu söylemez. android.webkit, android.print, android.app.backup, android.appwidget, android.hardware.usb: Sadece aşağıdaki paketler desteklenmez bahseder. kaynak: http://developer.android.com/training/wearables/apps/index.html – ssw

İlgili konular