//监视地点变化 public final LocationListener mLocationListener01 = new LocationListener() { public void onLocationChanged(Location location) { // TODO Auto-generated method stub processLocationUpDated(location); } public void onProviderDisabled(String provider) { // TODO Auto-generated method stub
} public void onProviderEnabled(String provider) { // TODO Auto-generated method stub
} public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub
public final LocationListener mLocationListener01 = new LocationListener()
{ public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
processLocationUpDated(location);
} public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
} public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
} public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
};
private void gpsdw()
{
try
{
mLocationManager01 = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocation01 = getLocationProvider(mLocationManager01);
if(mLocation01 != null)
{
processLocationUpDated(mLocation01);
}
//监视 时间为2秒距离为10米
mLocationManager01.requestLocationUpdates(strLocationProvider, 2000, 10, mLocationListener01);
}catch(Exception e)
{
e.printStackTrace();
}
}
private void processLocationUpDated(Location location)
{
if(location != null)
{
Consts.Latitude = String.valueOf(location.getLatitude());
Consts.Longitude = String.valueOf(location.getLongitude());
}
}
private Location getLocationProvider(LocationManager lm){
Location retLocation = null;
try
{
Criteria mCriteria01 = new Criteria();
mCriteria01.setAccuracy(mCriteria01.ACCURACY_COARSE);
mCriteria01.setAltitudeRequired(false);
mCriteria01.setBearingRequired(false);
mCriteria01.setCostAllowed(true);
mCriteria01.setSpeedRequired(false);
mCriteria01.setPowerRequirement(Criteria.POWER_LOW);
strLocationProvider = lm.getBestProvider(mCriteria01, true);
//List<String> matchingProviders = lm.getProviders(mCriteria01,false);
retLocation = lm.getLastKnownLocation(strLocationProvider);
}catch(Exception e)
{
e.printStackTrace();
}
return retLocation;
}
这是我的代码,测试通过,程序中调用gpsdw()即可
AndroidManifest.xml中记得加相关GPS权限
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>