Android 寻找全球定位系统的奇怪问题
所有我想找到的当前GPS位置,我使用了以下代码Android 寻找全球定位系统的奇怪问题,android,gps,location,Android,Gps,Location,所有我想找到的当前GPS位置,我使用了以下代码 public class GPSManager { private static final int gpsMinTime = 500; private static final int gpsMinDistance = 0; private LocationManager locationManager = null; private LocationListener locationListener = nul
public class GPSManager
{
private static final int gpsMinTime = 500;
private static final int gpsMinDistance = 0;
private LocationManager locationManager = null;
private LocationListener locationListener = null;
private GPSCallback gpsCallback = null;
public GPSManager()
{
locationListener = new LocationListener()
{
public void onProviderDisabled(final String provider)
{
}
public void onProviderEnabled(final String provider)
{
}
public void onStatusChanged(final String provider, final int status, final Bundle extras)
{
}
public void onLocationChanged(final Location location)
{
location.getLatitude();
location.getLongitude();
if (location != null && gpsCallback != null)
{
Log.e("if location "+location,"if gpscallback"+gpsCallback);
gpsCallback.onGPSUpdate(location);
location.getLatitude();
location.getLongitude();
}
else{
Log.e("else location "+location,"else gpscallback"+gpsCallback);
}
}
};
}
public void startListening(final Activity activity)
{
if (locationManager == null)
{
locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);
}
final Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
final String bestProvider = locationManager.getBestProvider(criteria, true);
if (bestProvider != null && bestProvider.length() > 0)
{
locationManager.requestLocationUpdates(bestProvider, GPSManager.gpsMinTime,
GPSManager.gpsMinDistance, locationListener);
}
else
{
final List<String> providers = locationManager.getProviders(true);
for (final String provider : providers)
{
locationManager.requestLocationUpdates(provider, GPSManager.gpsMinTime,
GPSManager.gpsMinDistance, locationListener);
}
}
}
public void stopListening()
{
try
{
if (locationManager != null && locationListener != null)
{
locationManager.removeUpdates(locationListener);
}
locationManager = null;
}
catch (final Exception ex)
{
}
}
public void setGPSCallback(final GPSCallback gpsCallback)
{
this.gpsCallback = gpsCallback;
}
public GPSCallback getGPSCallback()
{
return gpsCallback;
}
但奇怪的是,它只有在GPS处于关闭模式时才能工作。如果设备中的GPS处于打开模式,则该设备不工作
谁能告诉我我的代码有什么问题吗
请帮帮我。。。提前感谢。问题应该是电源需求。你要求的所有东西都符合gps提供商的位置,很好。。。。但是gps是耗电的,所以请尝试删除该行或将标准设置为power_HIGH是否尝试打印bestProvider的值?