gpt4 book ai didi

android - 为什么我从 NETWORK_PROVIDER 获取同一位置的不同 Gps 坐标?

转载 作者:行者123 更新时间:2023-11-29 00:36:55 25 4
gpt4 key购买 nike

我在同一位置获得不同的 Gps 坐标,这就是为什么会发生这种情况。但我需要更改 gps 坐标仅在 10 米后移动。我该怎么做。

这是我的代码。

  private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; 
private static final float MIN_GEOGRAPHIC_POOLING_DISTANCE = (float)10.0;


double myLat_Values;
double myLog_Vaues;


locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATES, MIN_GEOGRAPHIC_POOLING_DISTANCE, new MyLocationListener());


private class MyLocationListener implements LocationListener {

@Override
public void onLocationChanged(Location location) {
longitude_str = String.valueOf(location.getLongitude());
latitude_str = String.valueOf(location.getLatitude());

Double longitude_number = Double.valueOf(longitude_str);
DecimalFormat dec = new DecimalFormat("#.000000");
longitude_message = dec.format(longitude_number);

Double latitude_number = Double.valueOf(latitude_str);
DecimalFormat decim = new DecimalFormat("#.000000");
latitude_message = decim.format(latitude_number);

try
{
myLat_Values = Double.valueOf(latitude_message);
myLog_Vaues = Double.valueOf(longitude_message);
}
catch(NullPointerException ex)
{
myLat_Values = 0;
myLog_Vaues = 0;
}

System.out.println("GPS Values Clockout:"+myLat_Values+"-"+myLog_Vaues);

}

public void onProviderDisabled(String s) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}

我也将这些用于 list 文件:

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

我用了这个link

请任何人提出如何解决我的问题的建议。

先谢谢你。

最佳答案

当您使用 NETWORK_PROVIDER 时,它会根据您使用的网络服务提供商返回 GPS 坐标。但是,当您使用 GPS_PROVIDER 时,它会根据卫星返回 GPS 坐标。

对于 Accuracy Criteria , 添加以下代码,

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_HIGH);
locationManager.getBestProvider(criteria, true);

此外,您需要在AndroidManifest.xml 中声明以下GPS 权限

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

关于android - 为什么我从 NETWORK_PROVIDER 获取同一位置的不同 Gps 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12120386/

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