【问题标题】:Does Android Wear support HttpURLConnection - getting EOFExceptionAndroid Wear 是否支持 HttpURLConnection - 获取 EOFException
【发布时间】:2016-06-25 10:00:14
【问题描述】:

我想知道我们是否可以通过 Android Wear 中的 HttpURLConnection 访问网络?

我尝试在 Wear 代码中使用 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)

非常感谢您的帮助。

【问题讨论】:

    标签: android wear-os


    【解决方案1】:

    很遗憾,没有。

    Android Wear 应用程序无法直接访问互联网。他们必须与相应的手持应用程序通信(通过MessageApiDataApi)并请求它执行您需要的任何HTTP 请求。


    编辑:Android Wear 2.0,现在处于测试阶段,supports network requests,所以HttpURLConnection 应该可以在那里工作。

    【讨论】:

    • 是不是意味着穿戴设备要访问互联网,穿戴设备必须与手机应用程序通话。那么手机应用程序必须充当代理?
    • @ssw 是的,准确地说。至少现在的情况是这样。
    • 感谢您的回复。我仍然找不到任何提及不支持网络的东西。有趣的是,android wear 开发者页面并没有说不支持网络的东西。它只提到不支持以下包:android.webkit、android.print、android.app.backup、android.appwidget、android.hardware.usb。来源:developer.android.com/training/wearables/apps/index.html
    • @ssw 我理解你关于缺乏关于这个主题的官方文档的观点。但事实仍然是,目前无法从可穿戴设备直接访问互联网。无论是设计决策(可能是为了节省电池寿命)还是暂时的限制,都不得而知,但它现在不起作用。
    • @AbhayBuch 是的。但我认为这意味着我们应该使用 Wea​​rable Data Layer api 在手持设备和可穿戴设备之间进行通信。而且我们不应该使用自己的套接字在手持设备和可穿戴设备之间进行通信。但我认为这意味着使用套接字与外界通信是可能的,我们只是不想在手持设备和可穿戴设备之间使用它。
    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多