Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓GPS精度_Android_Gps - Fatal编程技术网

Android 安卓GPS精度

Android 安卓GPS精度,android,gps,Android,Gps,我想在我的应用程序中使用精细的gps定位。所以我遵循了一个简单的教程(LocationManager的基本用法,明确规定GPS提供商,要求更新0毫秒,0米)并创建了一个应用程序。我对更新的准确性和速度完全没有印象。速度很慢,最好的精度是24米,但平均96米 在同一部手机上,在同一个地方,我跑得广为人知。我惊讶地发现这个修正是多么准确。4-6米,始终如一 所以我关闭了GPS状态并运行我的应用程序-我看到了6米的精度,但几秒钟后它是24、56、90、128。。。。在96左右波动 现在,我想知道:这怎

我想在我的应用程序中使用精细的gps定位。所以我遵循了一个简单的教程(LocationManager的基本用法,明确规定GPS提供商,要求更新0毫秒,0米)并创建了一个应用程序。我对更新的准确性和速度完全没有印象。速度很慢,最好的精度是24米,但平均96米

在同一部手机上,在同一个地方,我跑得广为人知。我惊讶地发现这个修正是多么准确。4-6米,始终如一

所以我关闭了GPS状态并运行我的应用程序-我看到了6米的精度,但几秒钟后它是24、56、90、128。。。。在96左右波动

现在,我想知道:这怎么可能?有提高准确性的技巧吗

有人有好的例子/教程吗


这没有帮助

让我重复一遍:我获取并打印所有更新。所以我看到了一系列精确的定位

我看到了波动,我看到了最好的结果,它从来没有比12米更好过

现在在同一地点,我启动GPS Status=>并查看精度如何达到4米

首先我想:哈,GPS状态欺骗,只是偏离了准确度

但事实似乎并非如此,因为当我打开我的应用程序并获得最新的已知位置时,它确实是一个精确到4的位置

并开始降低到最佳情况12

总结:相同的硬件,相同的条件,不同的应用=>不同的准确性

所以我的问题是:有什么窍门吗?还有其他命令吗?有特殊的电源设置吗?与“你的应用程序有多重”有关系吗

相关:

这个怎么样

-设定精度+设定功率要求高:

try{
    locator = new GeoLocator(this);
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationManager.addGpsStatusListener(new GPSStatusManager(locationManager));
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setPowerRequirement(Criteria. POWER_HIGH);
    bestProvider = locationManager.getBestProvider(criteria, true);
    Bundle bundle = new Bundle();
    //I copied the next two lines out of some tutorial hoping that they would help boost my gps, but I'm really not sure what they do
    boolean xtraInjection=locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,
                                          "force_xtra_injection",bundle);
    boolean timeInjection=locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,
                                          "force_time_injection",bundle);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0.0f, locator);
}catch(Exception e){}

谷歌在最近的谷歌IO 2013活动上发布了一个不错的API:

您应该检查一下,看看如何最小化代码

请注意,这需要设备具有play store应用程序才能工作


与使用常规位置传感器(电池、速度、精度等)相比,这种方法有许多优点。

通过GnssMeasurement可以获得最佳精度,但很难编码。Android 7+我有Doodge Shot dual(非常不受欢迎的中国智能手机)和work。 (官方支持名单)

全球导航卫星系统(GPS/GLONASS/GALILEO/…)
LocationManager(0毫秒,0米)-不工作,经过一段时间(1-20秒)后,你会得到同样的协调(如果你待在一个地方)-精度为3-10米。使用LocationManager,您不会从物理模块获得“原始”GNNS数据,而是通过Android API计算得到。有了GnssMeasurement,你就可以得到它

我希望这对你有帮助。。不,没有。它只是过滤。可能重复的