【问题标题】:how to reset the gps in android如何在android中重置gps
【发布时间】:2015-07-14 12:39:40
【问题描述】:

有没有办法在安卓中重置 GPS? 请帮忙。 我测试了下面的一些代码,但不确定它的工作与否。

重置

Locationmanager.sendExtraCommand(LocationManager.GPS_PROVIDER,"delete_aiding_data", null);

用于下载 GPS 数据

public static void downloadGPSXtra(Context context){

 LocationManager locationmanager1 = (LocationManager)context.getSystemService("location");
 Bundle bundle = new Bundle();
 locationmanager1.sendExtraCommand("gps", "force_xtra_injection", bundle);
 locationmanager1.sendExtraCommand("gps", "force_time_injection", bundle);

    }

并在 android 清单中添加权限声明。

“ACCESS_LOCATION_EXTRA_COMMANDS”

【问题讨论】:

  • 什么是resetting a gps
  • 此外,是什么让您认为所有配备 GPS 的 Android 设备都必须遵守那些特定的“额外命令”?
  • 您能否解释一下您的总体目标,即为什么您要尝试这样做?可能有更好的方法。
  • 我正在开发出租车跟踪应用程序。当我跟踪他们的路径出错时,我有一些出租车司机抱怨距离。重置 GPS 是一种解决方案。其实我想在android中访问GPS芯片,有没有什么解决方案给我谢谢@runDOSrun

标签: android gps geolocation


【解决方案1】:

Android Location Manger 使用多个位置来源

数据网络(使用 IP 地理位置粗略定位到城市级别)

网络提供商(使用手机信号塔的粗略位置可达 100 米)

GNSS(在 GNSS 芯片上使用 GPS / GLONASS / GALILEO 精确到 3 米)

定位管理器是硬件封装,不能访问芯片。 由于障碍物,GNSS 芯片经常失去对城市地区卫星的跟踪。即使卫星跟踪丢失,使用多个来源也有助于 android 跟踪位置。

locationmanager1.sendExtraCommand("gps", "force_xtra_injection", bundle); locationmanager1.sendExtraCommand("gps", "force_time_injection", bundle);

你在这里下载 a-gps 数据 并同步 GPS 时间。

您正在做的是强制加载 a-GPS 数据。如果没有 a-Gps 数据,获得芯片的 First-Fix 的时间范围为 3-20 分钟。使用 a-Gps 可以缩短到 32 秒。

[有些应用需要root,可以改变a-gps的加载位置]

位置管理器在很大程度上依赖于“最后知道的最佳位置”。所以你做的是对的,它应该在一定程度上提高准确性。根据设备,您可以看到结果。

在硬件层面,给定位置至少有 3 米的误差(最大可达 50 米),在计算距离时应考虑到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多