手机是不是仅使用 GPS 来获取其位置?

Posted

技术标签:

【中文标题】手机是不是仅使用 GPS 来获取其位置?【英文标题】:Is phone using only GPS to get it's location?手机是否仅使用 GPS 来获取其位置? 【发布时间】:2016-04-15 17:59:20 【问题描述】:

我正在测试我们想要集成到硬件中的 android 手机和 GPS 设备的 GPS 位置。但是为了测试准确,手机只需要使用 GPS,而不是手机信号塔和 WiFi。

这是代码,我在其中设置了手机使用的服务。

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    locationManager
            .requestLocationUpdates(LocationManager.GPS_PROVIDER,
                    MIN_MILLISECONDS_BEFORE_UPDATE_LOCATION,
                    MIN_METERS_BEFORE_UPDATE_LOCATION,
                    new MyLocationListener(this));

那么手机会只使用 GPS 来获取它的位置吗?我不能关闭 WIFI,因为手机正在将当前位置发送到我们的数据库。 GPS 设备和手机在测试时都位于固定位置。

我知道如何使用 GPS 获取位置已经存在问题,但我想确保该手机仅使用 GPS。

【问题讨论】:

我知道它已经回答了,但如果你想亲自看看,在你的 MyLocationListener 上你会收到一个 Location (developer.android.com/reference/android/location/…) 的实例。你可以调用这个location.getProvider() 来查看是谁提供了那个位置,你应该只得到GPS 或类似的字符串。 【参考方案1】:

它可以通过仅使用 GPS 找到位置(假设该位置是可以到达的,例如不是地下或类似的东西)通过使用互联网它只是更快地找到位置。由于您的设备是固定的,所以应该没问题。

阅读更多相关信息here。

【讨论】:

我还跟踪已连接卫星的数量并检查它是否已连接。好的,那么互联网和蜂窝网络不会影响准确性? 不,不影响准确性。【参考方案2】:

默认它使用 gps,如果 gps 不工作,它将使用互联网,所以你不需要 wright 东西

使用LocationManager。

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();

getLastKnownLocation() 的调用不会阻塞 - 这意味着如果当前没有可用的位置,它将返回 null - 所以您可能想看看将 LocationListener 传递给 requestLocationUpdates() method,这将为您提供位置的异步更新。

private final LocationListener locationListener = new LocationListener() 
    public void onLocationChanged(Location location) 
        longitude = location.getLongitude();
        latitude = location.getLatitude();
    

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener); 如果您想使用 GPS,则需要为您的应用程序提供 ACCESS_FINE_LOCATION permission。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

您可能还想在 GPS 不可用时添加ACCESS_COARSE_LOCATION permission,并使用getBestProvider() method 选择您的位置提供商。

【讨论】:

以上是关于手机是不是仅使用 GPS 来获取其位置?的主要内容,如果未能解决你的问题,请参考以下文章

获取手机的GPS位置[重复]

iOS:是不是可以要求核心位置框架仅使用蜂窝塔或仅使用 WiFi 或使用 GPS 天线获取位置?

仅使用 GPS 无线电进行高精度 webkit 地理定位

Android 怎么使用 最简单 的方法来获取手机当前的位置(获取手机当前的经,纬度),求详细

GPS Android - 仅获取一次定位

尝试获取 GPS 位置并将其显示在 TextView 中