我有一个用java编写的磨损-os独立应用程序,它通过无线局域网websockets以客户端(org.java_websocket.client.WebSocketClient)连接到运行在智能手机(TicWatch Pro 3)上的服务器(org.java_websocket.server.WebSocketServer)。当我运行代码时,只要智能手表充电,一切正常工作(网络套接字连接)。一旦我断开充电器,并试图通过websockets将智能手表客户端连接到智能手机服务器,就无法建立连接。没有显示错误,只是没有建立连接。
这是用于启动web套接字客户端的Runnable类的简化版本。
public class BackgroundReceiverThread implements Runnable {
public static void startBackgroundReceiver(){
AsyncTask.execute(new BackgroundReceiverThread());
}
private BackgroundReceiverThread() {}
//@Override
public void run() {
try {
client=new BackgroundReceiverClient(new URI("ws://localhost:8887"));
client.connect();
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}BackgroundReceiverClient类看起来如下:
public class BackgroundReceiverClient extends WebSocketClient {
public BackgroundReceiverClient(URI serverUri) {
super(serverUri);
}
@Override
public void onOpen(ServerHandshake serverHandshake) {
Log.i("mytag","On Open");
}
@Override
public void onError(Exception e) {
Log.i("mytag","On Error:"+e.getMessage());
}
}当智能手表充电并调用BackgroundReceiverThread.startBackgroundReceiver()时,将调用onOpen()方法。当充电器断开连接时,不会调用onOpen()方法。
我想这是由于智能手表的节能措施所致,智能手表在不充电时会被激活。我已经尝试过识别智能手表上的相应设置,但是找不到。
当智能手表不充电时,我如何让客户端连接到服务器?
发布于 2021-06-30 10:00:53
我有一个相当类似的问题,我试图通过Socket.IO连接到我的Ticwatch E2,它只在充电时起作用。在寻找各种节能预防措施之后,我可以让真正的问题失效,毕竟,这就是:
我的Ticwatch通过蓝牙与我的手机自动连接,并使用我的手机连接到的with (您可以在手机上的磨损操作系统应用程序中看到连接状态)。为了建立一个插座连接,手表需要连接到wi本身。在默认情况下,当连接到您的手机时,它不会这样做。
您可以通过在您的手机上启用飞行模式轻松地测试这一假设,并在您的Ticwatch上再次尝试应用程序,它对我的socket.IO应用程序有效。
https://stackoverflow.com/questions/68015482
复制相似问题