我已经完成了基本的LocationListener
@Override
public void onLocationChanged(Location location) {
int speed = 0;
if (location.hasSpeed()) {
speed = (int) ((location.getSpeed() * 3600) / 1000);
}
Timestamp time = new Timestamp(location.getTime());
String gpsInfo = simpleDateFormat.format(time) + ";" + location.getLongitude() + ";" + location.getLatitude() + ";" + location.getAccuracy() + ";" + location.getProvider() + ";" + speed;
gpsList.add(gpsInfo);
}
我需要一些如何获得有关卫星信息的更多信息(GPS / GLONAS / GALILEO ......)
我的目标结果是,如果位置来自galileo,则将数据添加到bouth列表中,如果它来自其他satelite-system仅添加到gpsList。例如
@Override
public void onLocationChanged(Location location) {
int speed = 0;
if (location.hasSpeed()) {
speed = (int) ((location.getSpeed() * 3600) / 1000);
}
Timestamp time = new Timestamp(location.getTime());
String gpsInfo = simpleDateFormat.format(time) + ";" + location.getLongitude() + ";" + location.getLatitude() + ";" + location.getAccuracy() + ";" + location.getProvider() + ";" + speed;
gpsList.add(gpsInfo);
if(location.isFromGalileo){
gpsGalileoList.add(gpsInfo);
}
}
我发现了解决了什么问题,但在这种情况下,我很可能需要伽利略卫星数字 Is it possible to know my location came from gps or glonass?
修改
我找到了解决问题的步骤meybe some1也需要它:
第一步: 通过GnssStatus.Callback扩展类
public class NavigationSystemListener extends GnssStatus.Callback implements LocationListener
第二步: 从GnssStatus覆盖函数onSateliteStatusChange而不是GPSStatus
@Override
public void onSatelliteStatusChanged(GnssStatus status) {
}
第三步:
了解他们的文字和文字:
@Override
public void onSatelliteStatusChanged(GnssStatus status) {
for (int i = 0; i < status.getSatelliteCount(); i++) {
int satelliteId = status.getSvid(i);
int satelliteType = status.getConstellationType(i);
if(satelliteType==GnssStatus.CONSTELLATION_GALILEO){
}
}
}
第四步: 在specyfic nawigation系统列表上做的事情就在这里:
https://developer.android.com/reference/android/location/GnssStatus#constants
但现在我有2个问题 我接到电话Assus Zenfone 3 3 satelits from function
status.getConstellationType(i)
这款手机有支持伽利略的芯片组,它是可靠的吗?
第二个问题如何将伽利略数据保存在其他文件中或在现有文件中标记这是伽利略