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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Traccar API获得实时位置?相关的知识,希望对你有一定的参考价值。

我们试图通过使用带有Retrofit2的Traccar API来获取设备位置的实时更新,直到现在,我们只能在应用程序启动时获取位置(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

以上是关于如何使用Traccar API获得实时位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我们走路时获得实时的当前位置更新

如何使用谷歌地图 Api 获得最精确的位置 [重复]

任何人都知道如何获得paypal自适应API的实时appID?

QT怎么获得label实时坐标

如何使用地图标记列表创建实时搜索淘汰赛?

如何在两个位置之间获得多条路线?