如何使用 Traccar API 获取实时位置?

How to get realtime location with Traccar API?

我们正在尝试通过将 Traccar API 与 Retrofit2 结合使用来获取设备位置的实时更新,直到现在,我们只能在应用程序启动时获取位置(Android申请)。

要获得实时更新,您应该使用 WebSocket 连接到 Traccar 服务器。 Retrofit 不支持类似的东西,所以你应该直接使用 OkHttp:

Request request = new Request.Builder().url(retrofit.baseUrl().url().toString() + "api/socket").build();
webSocket = WebSocketCall.create(client, request);
webSocket.enqueue(new WebSocketListener() {
    @Override
    public void onOpen(WebSocket webSocket, Response response) {
    }

    @Override
    public void onFailure(IOException e, Response response) {
        reconnectWebSocket();
    }

    @Override
    public void onMessage(ResponseBody message) throws IOException {
        final String data = message.string();
        handler.post(new Runnable() {
            @Override
            public void run() {
                try {
                    handleMessage(data);
                } catch (IOException e) {
                    Log.w(MainFragment.class.getSimpleName(), e);
                }
            }
        });
    }

    @Override
    public void onPong(Buffer payload) {
    }

    @Override
    public void onClose(int code, String reason) {
        reconnectWebSocket();
    }
});

更多信息可以查看官方Traccar Manager应用(原生版):

https://github.com/tananaev/traccar-manager-android/tree/native

@Cesar gutierrez 我解决了那个问题。使用地理编码实时定位和显示已知地址