1

我想获得移动当前位置,当我安装应用程序时,比第一次获得正确的纬度,但比每次显示第一次获得位置之后。请给我正确的代码以获得每次正确的纬度。_ 在排序中我的位置未更新,或位置缓存不清楚。->我的代码

公共类 MyLocationListener 实现 LocationListener {

private LocationManager mLocationManager;
private Location currentLocation;

public MyLocationListener(Context context) {
    mLocationManager = (LocationManager) context
            .getSystemService(Context.LOCATION_SERVICE);

    currentLocation = mLocationManager
            .getLastKnownLocation(LocationManager.GPS_PROVIDER);

    mLocationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 0, 0, this);

}

public Location getBestLocationAvailable() {
    return currentLocation;
}

@Override
public void onLocationChanged(Location newBestLocation) {
    mLocationManager.removeUpdates(this);
    currentLocation = newBestLocation;
}

@Override
public void nProviderDisabled(String arg0) {
}
@Override
public void onProviderEnabled(String arg0) {
}

@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
}

}

MyLocationListener loc = new MyLocationListener(MainActivity.this);

位置 location = loc.getBestLocationAvailable(); system.out.println(location.getLatitude()+" "+location.getLongitude);

给我写答案,为什么我会老拉长?

4

2 回答 2

0

您的代码看起来不错,但是为什么要添加此字符串?

mLocationManager.removeUpdates(this);

因此,您只会收到一个位置更新,之后您的监听器将被禁用。尝试删除此字符串并再次检查。

另外,请注意不同的设备需要不同的时间来进行 GPS“冷”启动。在测试您的应用程序之前,请检查另一个应用程序(例如地图或 GPS 监视器)中的 GPS 状态。如果您的设备处于“冷”状态,您将长时间(10-20 分钟或更长时间)不会收到任何更新。

于 2013-06-14T10:10:46.260 回答
0

尝试在 onLocationChnage() 中获取纬度和经度

public void onLocationChanged(Location loc) {
            //sets and displays the lat/long when a location is provided
            String lat = loc.getLatitude();
            String longt= loc.getLongitude();   
          Toast.makeText(getApplicationContext(),"Lat"+ lat+ "Long"+longt, Toast.LENGTH_LONG).show();
        }

在清单中添加权限

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
于 2013-06-14T09:22:24.947 回答