我已经开发了一个与HTTP API通信的磨损OS 2.0 应用程序。我正在使用凌空连接到此API,但是只有当我关闭蓝牙时,它似乎才能使用。我使用蓝牙提出的任何请求简单超时。另一端通常在miliseconds之内做出响应,返回不超过几千字节。
文档指出以下有关网络访问的文档:
佩戴操作系统应用程序可以提出网络请求。当手表有蓝牙 连接到电话,手表的网络流量通常是 通过电话代理。但是,当电话不可用时,Wi-Fi和 根据硬件,使用蜂窝网络。磨损 平台处理网络之间的过渡。
因此,从我的理解中,Android应该照顾我的要求到另一端,无论是使用蓝牙(通过电话代理)或wifi。
带有凌空请求的实际代码:
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确实提供了一个连接策略器,它使我能够请求WiFi网络。但是,创建一个高的频段网络,我不需要它听起来有些不必要,电池会排出我要预防的东西。
事实证明问题在另一侧。API只是永远不会发送每次发送请求时导致超时的响应。
如果您遇到类似问题,我确实建议在蓝牙上进行测试。