Skip to content Skip to sidebar Skip to footer

Can't Get Gps Coordinates In Android Application

I use this code to get the current location's coordinates. When I start this activity, nothing happens. When I use this exact code in another application it worked. The only differ

Solution 1:

Hope this might help

Edit:

publicclassMainActivityextendsAppCompatActivityimplementsGoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {
    privatestatic final int PERMISSION_REQUEST_ACCESS_FINE_LOCATION = 100;

    privateLocationRequest mLocationRequest;
    privateGoogleApiClient mGoogleApiClient;
    privateTextView mLatitudeTextView;
    privateTextView mLongitudeTextView;

    @OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mLatitudeTextView = (TextView) findViewById((R.id.latitude_textview));
    mLongitudeTextView = (TextView) findViewById((R.id.longitude_textview));

        createLocationRequest();
        mGoogleApiClient = newGoogleApiClient.Builder(this)
                .addApi(LocationServices.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();

        if (!checkPermissions()) requestPermissions();
    }

    @OverridepublicvoidonStart() {
        super.onStart();
        mGoogleApiClient.connect();
    }

    @OverridepublicvoidonStop() {
        super.onStop();
        mGoogleApiClient.disconnect();
    }

    @OverrideprotectedvoidonPause() {
        super.onPause();
        if(checkPermissions()) stopLocationUpdates();
    }

    @OverridepublicvoidonResume() {
        super.onResume();
        if(checkPermissions() && mGoogleApiClient.isConnected()) startLocationUpdates();
    }

    privatevoidstartLocationUpdates() {
        //noinspection MissingPermissionLocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
    }

    privatevoidstopLocationUpdates() {
        LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
    }

    privatebooleancheckPermissions() {
        returnContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
    }

    privatevoidrequestPermissions() {
        if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)) {
        } else {
            ActivityCompat.requestPermissions(this,
                    newString[]{Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSION_REQUEST_ACCESS_FINE_LOCATION);
        }
    }

    privatevoidcreateLocationRequest() {
        mLocationRequest = newLocationRequest();
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    }

    @OverridepublicvoidonConnected(@Nullable Bundle bundle) {
        if(checkPermissions() && mGoogleApiClient.isConnected()) startLocationUpdates();
    }

    @OverridepublicvoidonConnectionSuspended(int i) {

    }

    @OverridepublicvoidonConnectionFailed(@NonNull ConnectionResult connectionResult) {

    }

    @OverridepublicvoidonLocationChanged(Location location) {
        LatLng latLng = newLatLng(location.getLatitude(), location.getLongitude());
        mLatitudeTextView.setText(String.valueOf(location.getLatitude()));
        mLongitudeTextView.setText(String.valueOf(location.getLongitude()));
    }

    @OverridepublicvoidonRequestPermissionsResult(int requestCode, @NonNullString[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            casePERMISSION_REQUEST_ACCESS_FINE_LOCATION: {
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    startLocationUpdates();
                } else {

                }
            }
        }
    }
}

In onLocationChanged() you get location which you can use to get latitude and longitude. Also, this code does not give continuous location updates. For that you have to set UPDATE INTERVAL & FASTEST UPDATE INTERVAL in method createLocationRequest().

Post a Comment for "Can't Get Gps Coordinates In Android Application"