onLocationChanged没有在ics android中调用

时间:2012-10-12 07:05:53

标签: android gps maps

我正在开发gps定位应用,我的问题是在我的 Galaxy S2 ICS 4.0.3 上,gps需要很长时间才能调用onLocationChanged,锁定需要很长时间,有时候不会t锁定,代码如下。

LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
MyLocationListener listener = new MyLocationListener();

if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100, 0, listener);
else
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 100, 0, listener);


// Location Listener class
private class MyLocationListener implements LocationListener{

public void onLocationChanged(Location loc) {
     if(loc != null)
    txtLocation.setText("Lat: "+loc.getLatitude() + " Lng: "+loc.getLongitude());
     else
    Toast.makeText(MainActivity.this, "Loc == null", Toast.LENGTH_LONG).show();
    }

public void onProviderDisabled(String arg0) {}

public void onProviderEnabled(String arg0) {}

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

}

我已在 Galaxy y(2.3.6) HTC Explorer(2.3.6)上测试了此代码,它的工作速度非常快,并且可以像4-5秒!!

现在是我的Galaxy s2或者ics问题,因为我已经使用XXLPJ固件 S2扎根

我该怎么办才能摆脱这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

许多GPS设备使用Extra XTRA数据进行快速卫星锁定,但此数据需要每7天更新一次。

您在Google Play中有一些程序可以选择强制进行此更新(例如GPS Status)。您需要连接到Internet才能下载数据。

如果没有解决,可能会遇到ROM问题或GPS故障。

问候。