【问题标题】:Direct internet connection on Android Wear?Android Wear 上的直接互联网连接?
【发布时间】:2014-07-08 08:32:33
【问题描述】:

我尝试构建一个显示一些来自互联网的图片的应用程序。

我使用了一个功能,该功能在我的手机(Galaxy S3 - Android 4.3)上运行良好,但在手表上我得到了 java.io.EOFException 异常。

代码(适用于手机):

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    ImageView bmImage;

    public DownloadImageTask(ImageView bmImage) {
        this.bmImage = bmImage;
    }

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            //Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return mIcon11;
    }

    protected void onPostExecute(Bitmap result) {
        bmImage.setImageBitmap(result);
    }
}

其他函数抛出org.apache.http.NoHttpResponseException 手表已配对并在线,因为我可以使用语音命令和搜索网络等。

所以问题是:我可以直接从 Android Wear 访问网络还是需要在我的手机上处理所有这些任务?还是我的设置有问题?

【问题讨论】:

    标签: android wear-os


    【解决方案1】:

    Android Wear 设备无法直接访问互联网。如果您想访问网络,您应该使用您的配套应用程序。您可以使用Data Layer API 在可穿戴设备和手持设备之间来回传输数据。数据层 API 内置了对 transferring assets 的支持(主要是图像,但基本上您可以传输任何其他二进制数据)。

    编辑:从 Android Wear 2.0 开始,可以使用常规网络 API 直接访问互联网。有关详细信息,请参阅Android Wear 2.0 Developer Preview documentation。 Android Wear 2.0 尚未发布,具体时间请参考Developer Preview Program Overview

    【讨论】:

    • 很遗憾听到他们没有将此功能内置到手机上的 Android Wear 应用程序中,并无缝地为穿戴设备提供互联网连接(如在 Google Glass 上)。现在每个人都必须编写自己的互联网连接代码并将其放入手机应用程序中。
    • 是否需要用户启动配套应用才能发生这种情况?换句话说,如果用户只运行过可穿戴应用程序,它可以通过手机访问互联网吗?
    • 由于新版本的 Android Wear 在某些手表(例如 Galaxy Gear)上启用了 Wi-Fi 支持,此限制是否仍然存在?我想知道我是否可以创建一个可以在手机不在身边时连接到互联网的 Wear 应用
    【解决方案2】:

    即使 Android 5.1.1 支持 Wi-Fi 功能。

    你应该坚持使用数据层 API,你不能直接从手表发送 http 请求。从手机中获取互联网数据,然后使用 Data Layer API 将其传输到手表。

    你可以看到这个Does Android Wear support directly access the Internet?

    还有这份文件Always-on and Wi-Fi with the latest Android Wear update

    【讨论】:

      【解决方案3】:

      我有一个非常相似的问题。我的应用程序使用中间件(ZeroC Ice)连接到互联网,所以我不能使用MessageApi 或类似的东西。我的 Wear 应用能够在未连接手机的情况下连接到互联网。

      我的问题是当手机连接到我的 Wear 设备时 WiFi 被关闭(为了节省电池)。一个简单的解决方案是禁用此功能:转到您的穿戴设备上的Developer Options 并禁用Automatic Wi-Fi toggle。这会更快地耗尽您的电池电量,但您每次都能连接到互联网。

      致谢:https://arcoresearchgroup.wordpress.com/2016/04/18/wear-keep-internet-even-when-connected/#more-1349

      【讨论】:

        【解决方案4】:

        您可以使用MessageApi。我遵循this 详细示例,效果非常好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-02-21
          • 1970-01-01
          • 1970-01-01
          • 2011-12-17
          • 2012-06-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多