启动Android导航以获得结果

我正在创建一个应用程序,我需要启动导航应用程序,然后使用结果(最重要的是驱动距离).我正在使用startActivityForResult并使用方案“google.navigation”开始导航活动.像这样:

Intent i = new Intent(
    Intent.ACTION_VIEW,
    Uri.parse("google.navigation:q=Somewhere"));
startActivityForResult(i,1);

这很好用,我在活动完成时收到回调,但活动的数据部分为空.

有没有办法做到这一点?

是否有导航历史记录,我可以浏览最新的数据行程?

最好的祝福
雅各布西蒙 – 加尔德

解决方法:

我不知道谷歌导航的回调.但是如果你只对获得驱动距离感兴趣,你可以继续在后台听取位置更新并自己计算距离.以下函数使用android.location.Location来计算两个LatLang坐标之间的距离:

public double getGeodesicDistance(LatLng from, LatLng to){
    Location _fromLoc = new Location("From location");
    _fromLoc.setLatitude(from.latitude);
    _fromLoc.setLongitude(from.longitude);

    Location _toLoc = new Location("To location");
    _toLoc.setLatitude(to.latitude);
    _toLoc.setLongitude(to.longitude);

    return Math.round(_fromLoc.distanceTo(_toLoc)); // distance in metres
}

但是如果你决定采用这种方法,你应该检测GPS数据的突然跳跃并相应地处理它们.

上一篇:CSS-设置列表样式


下一篇:React-Navigation Integration with Redux