gpt4 book ai didi

android - 是否有可能知道我的位置来自 gps 或 glonass?

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

假设设备同时支持gps和glonass(硬件层面的支持)。

现在当我通过 android.location API 获取位置时,是否可以知道位置来自的硬件?


LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener());

class LocationListener implement LocationListener(){
@Override
public void onLocationChanged(Location location) {
GPSStatus status=locationManager.getGpsStatus();
//check the PRN of the satellites from the status
//but how can be granted that the `status` object obtained here is exactly the same when it was used to calculate the location?
}
}

如果我们像这样使用 GPSStatus.Listener:

class LocationListener implement LocationListener,GPSStatus.Listener(){
private GPSStatus status;
@Override
public void onLocationChanged(Location location) {
if(status!=null){
//status should be the GPSStatus before get this location
//check the PRN of the satellites from the status
//How it can be granted that the `onGpsStatusChanged` will be called before the `onLocationChanged` by the Android System?
}

}
public void onGpsStatusChanged(int event) {
status = locationManager.getGpsStatus(null);
}
}

最佳答案

位置信息的硬件是您手机中的 GPS/GLONASS 芯片。该芯片接收来自环绕地球运行的卫星的信号。

GPS 和 GLONASS 卫星在支持此功能的设备上结合使用。要确定 GLONASS 卫星是否用于确定位置,您可以注册 GpsStatusListener 或调用 LocationManager.getGpsStatus()。对 GpsStatus 对象调用 getSatellites(),并对返回列表中的每个 GpsSatellite 对象调用 getPrn()。如果该值介于 65 和 88 之间,并且 usedInFix() 方法返回 true,则最后一个位置是使用 GLONASS 卫星计算的。

参见 http://developer.sonymobile.com/knowledge-base/technologies/glonass/

关于android - 是否有可能知道我的位置来自 gps 或 glonass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27655011/

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