gpt4 book ai didi

android - 无法在 wearos 蓝牙上发送 HTTP 请求

转载 作者:行者123 更新时间:2023-11-29 23:16:49 26 4
gpt4 key购买 nike

我开发了一个与 HTTP API 通信的 wear os 2.0+ 应用程序。我正在使用 Volley 连接到这个 API,但它似乎只有在我关闭蓝牙时才有效。我用蓝牙发出的任何请求都会超时。另一端通常在毫秒内响应,返回不超过几千字节。

文档说明了以下关于网络访问的内容:

Wear OS apps can make network requests. When a watch has a Bluetooth connection to a phone, the watch's network traffic generally is proxied through the phone. But when a phone is unavailable, Wi-Fi and cellular networks are used, depending on the hardware. The Wear platform handles transitions between networks.

因此根据我的理解,Android 应该负责确保我的请求通过蓝牙(通过电话代理)或 wifi 发送到另一端。

使用 volley 发出 HTTP 请求的实际代码:

public <T> CompletableFuture<T> send(String url, Class<T> type) {
CompletableFuture<T> requestCompletableFuture = new CompletableFuture<>();

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
response -> {
T data = serializer.fromJson(response.toString(), type);

requestCompletableFuture.complete(data);
}, (ex) -> {
requestCompletableFuture.completeExceptionally(ex);
});

request.setRetryPolicy(new DefaultRetryPolicy(15000,
0,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

requestQueue.add(request);

return requestCompletableFuture;
}

Android 确实提供了一个 ConnectivityManager,它使我能够请求 WIFI 网络。但是创建一个我不需要的高带宽网络听起来有点不必要,而且会耗尽我试图阻止的电池电量。

最佳答案

原来问题出在另一边。每次我发送请求时,API 都不会发送导致超时的响应。

如果您遇到类似问题,我建议您在蓝牙上进行测试。

关于android - 无法在 wearos 蓝牙上发送 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55200080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com