Android 带有asynctask的GPS跟踪器示例:错误“;提供商没有';存在:空";

Android 带有asynctask的GPS跟踪器示例:错误“;提供商没有';存在:空";,android,Android,我正在寻找一个非常示例的例子,显示带有asynctask的经度和纬度跟踪器 我找到了这段代码,但他不工作:/I在以下内容中捕获了一个奇怪的异常“provider不存在:null”: 在搜索之后,我看到了这篇帖子()谁解释我必须使用这句话: List<String> providers = locationManager.getAllProviders(); 编辑:我的gps已打开您是否已在mobile中打开gps?是的,gps已打开=) List<String> pro

我正在寻找一个非常示例的例子,显示带有asynctask的经度和纬度跟踪器

我找到了这段代码,但他不工作:/I在以下内容中捕获了一个奇怪的异常“provider不存在:null”:

在搜索之后,我看到了这篇帖子()谁解释我必须使用这句话:

List<String> providers = locationManager.getAllProviders();

编辑:我的gps已打开

您是否已在mobile中打开gps?是的,gps已打开=)
List<String> providers = locationManager.getAllProviders();
public class GPSTracker extends Service implements LocationListener {

    private final Context mContext;
    boolean isGPSEnabled = false;
    boolean isNetworkEnabled = false;
    boolean canGetLocation = false;

    Location location = null; 
    double latitude = 0; 
    double longitude = 0; 
    double altitude = 0;

    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10;
    private static final long MIN_TIME_BW_UPDATES =  1000* 60 * 1;
    protected LocationManager locationManager;

    public GPSTracker(Context context) { 
        this.mContext = context.getApplicationContext(); 
        getLocation();
    }

    public Location getLocation() {
        try {
            locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);

            isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

            isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

            if (!isGPSEnabled && !isNetworkEnabled) {
               Log.i("Je tombe...","...ici !");
            } else {
                this.canGetLocation = true;
                if (isGPSEnabled) {
                    if (location == null) {
                        locationManager.requestLocationUpdates(
                                LocationManager.GPS_PROVIDER,
                                MIN_TIME_BW_UPDATES,
                                MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                        Log.d("GPS Enabled", "GPS Enabled");
                        if (locationManager != null) {
                            location = locationManager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();
                                altitude = location.getAltitude();
                            }
                        }
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return location;
    }

    public void stopUsingGPS() {
        if (locationManager != null) {
            Log.i("STOPUSINGGPS", "EFFECTIF");
            locationManager.removeUpdates(GPSTracker.this);
        }
    }

    public double getLatitude() {
        if (location != null) {
            Log.i("LATITUDE", "EFFECTIF");
            latitude = location.getLatitude();
        }
        return latitude;
    }

    public double getLongitude() {
        if (location != null) {
            Log.i("LONGITUDE", "EFFECTIF");
            longitude = location.getLongitude();
        }
        return longitude;
    }

    public double getAltitude() {
        if (location != null) {
            Log.i("ALTITUDE", "EFFECTIF");
            altitude = location.getAltitude();
        }
        return altitude;
    }

    public boolean canGetLocation() {
        return this.canGetLocation;
    }

    @Override
    public void onLocationChanged(Location location) {
    }

    @Override
    public void onProviderDisabled(String provider) {
    }

    @Override
    public void onProviderEnabled(String provider) {
    }

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

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

}