gpt4 book ai didi

android - 从另一台设备实时定位安卓设备

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:59 24 4
gpt4 key购买 nike

我有一个应用程序,我想在其中找到设备的确切位置。就像如果你乘坐出租车,我想找到出租车的确切位置。出租车司机将使用安卓设备。因此,我想通过该设备为其他想要查看出租车位置的用户定位出租车位置。

我尝试使用 requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener) 将出租车司机的当前位置上传到服务器,因为出租车移动了几米,我已经完成了这个更新位置当驾驶室按下某个启动按钮或某些东西时,驾驶室的驾驶室会不断发送 X 米设备的当前位置。

从更新后的位置,其他用户将调用该服务并找到出租车的当前位置。

在用户端会有一张 map ,他可以在其中看到出租车的当前位置。用户调用该服务以查看更新后的位置。我通过在该 Activity 上设置 TIMER 来调用该服务,以便它刷新并一次又一次地调用服务器。(设置计时器是最好的方法或任何其他方法)。

但这种方法需要大量数据和电池,而且它甚至不是实时的。有没有最好的方法来定位 android 设备,以便它看起来至少是实时的。

最佳答案

Is there any best approach to locate the android device

您可以使用 GCM service .

how it will help you?

它可以在出租车移动时发送带有当前 latlng 的推送消息(对于每个位置更新)。

例如:

@Override
public void onLocationChanged(Location location) {
String latitude = String.valueOf(location.getLatitude());
String longitude= String.valueOf(location.getLongitude());
//Send push messages with current location
// sendpushMessage(from_Number, to_Number/s, "Location "+ latitude +" "+ longitude;
}

您可以重复启动 IntentService,然后是 AlarmManager,每 5/10 秒发送一次消息(位置),并随时停止(例如,当出租车在用户位置范围内或类似情况时)。

在用户的设备中,您可以获得有关出租车司机位置变化的消息。只需将这些更新的位置放在 map 中并显示给用户即可。因此用户可以完美地看到正在运行的驾驶室。

在用户的设备中.. 例如:

GCMIntentService 的 onMessage() 方法中获取所有消息,例如:

 @Override
protected void onMessage(Context context, Intent intent) {
String message = intent.getExtras().getString("message");
//tokenize the string and get driver's location(latitude, longitude)
//then update each latlng and show cab marker in user's map with a static method
}

注意:我们总是从这里开始通知(onMessage())。因此,请确保您没有使用任何通知,否则会通过带有新位置消息的多个通知来打扰用户。

这种方法对电池很有帮助。您也不必每次都检查服务器以继续更新。它会在您需要时自动将消息推送到用户的设备,并且接收者可以完美地接收每条消息。

关于android - 从另一台设备实时定位安卓设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24997971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com