2014-07-12 124 views
9

我想知道是否可以通過訪問網絡HttpURLConnection from Android WearAndroid Wear是否支持HttpURLConnection - 獲取EOFException

我嘗試使用HttpURLConnection的磨損代碼中,我得到EOFException類。相同的代碼適用於普通的Android手機。它僅在Android Wear上有問題。

如果Wear上不支持HttpURLConnection,我們應該使用Apache Http客戶端還是別的?

或者我啓動應用程序開發的方式不正確?

 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清單。我也從AsyncTask運行上面的代碼。

EOFException發生在conn.getResponseCode()

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) 

非常感謝您的幫助。

回答

10

不幸的是,沒有。

Android Wear應用程序無法直接訪問Internet。他們必須與其相應的掌上應用程序(通過MessageApiDataApi)進行通信並請求它執行您所需的任何HTTP請求。


編輯:的Android 2.0的磨損,現在處於測試階段,supports network requests,所以HttpURLConnection應該在那裏工作。

+0

這是否意味着穿戴裝置訪問互聯網時,穿戴裝置必須與移動電話應用交談。那麼手機應用程序必須充當代理? – ssw

+0

@ssw確實。至少現在情況如此。 – matiash

+1

感謝您的回覆。 我仍然無法找到任何提及的網絡資料不受支持。 有趣的是,android Wear開發者頁面並沒有說網絡的東西不被支持。它只是提到了以下軟件包不支持: android.webkit, android.print, android.app.backup, android.appwidget, android.hardware.usb。 來源:http://developer.android.com/training/wearables/apps/index.html – ssw