我正在开发一个表盘,它可以从互联网上检索一些数据并每 3 分钟更新一次指示器。但看起来当手表(Galaxy Watch4)处于环境模式时,互联网连接暂停并且指示器无法再更新,直到用户点击屏幕并且手表切换回全开状态。
但是,当我停用手表上的 WiFi 连接时,数据仍然通过手机的蓝牙 连接检索。数据检索工作正常即使在环境模式下。为什么会这样?
我知道WiFi连接比蓝牙需要更多的功率,所以可能系统暂停了WiFi连接。但是为什么不默认蓝牙呢?有没有办法强制网络连接始终使用蓝牙,无论手表上的 WiFi 状态如何?
WiFi 会在 Wear OS 中自动关闭。如果你想保持 WiFi 开启,你应该发出一个 NetworkRequest 来开启 WiFi。
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() {
public void onAvailable(Network network) {
super.onAvailable(network);
// The Wi-Fi network has been acquired. Bind it to use this network by default.
connectivityManager.bindProcessToNetwork(network);
}
public void onLost(Network network) {
super.onLost(network);
// Called when a network disconnects or otherwise no longer satisfies this request or callback.
}
};
connectivityManager.requestNetwork(
new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build(),
callback
);