Not getting latitude and longitude values android java : > I tried below code but i not getting value of latitude and longitude.I
> also cant get log:"GPS is on" which i describe in code.I also granted
> location service permission.I think my code always get null location
> then it go for else condition in gotlocation(); I west to much time
> but i get no solution.

MY code:

        package gd.rf.ddl.vipsrc.service;
    
        import android.Manifest;
        import android.annotation.SuppressLint;
        import android.app.Service;
    
        import android.content.Context;
        import android.content.Intent;
        import android.location.Criteria;
        import android.location.Location;
        import android.location.LocationListener;
        import android.location.LocationManager;
        import android.os.AsyncTask;
        import android.os.Bundle;
        import android.os.IBinder;
        import android.support.annotation.Nullable;
        import android.util.Log;
    
    
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    
    import static android.content.ContentValues.TAG;
    
    
    @SuppressLint("HandlerLeak")
    public class BootService extends Service implements LocationListener {
    
        public double latitude;
        public double longitude;
        public LocationManager locationManager;
        public Criteria criteria;
        public String bestProvider;
    
    
        @Override
        public void onCreate() {
            super.onCreate();
    
            getLocation();
            }
    
            @Override
        public void onDestroy() {
            super.onDestroy();
    
            locationManager.removeUpdates(this);
        }
    
        @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
        @SuppressLint("MissingPermission")
        protected void getLocation() {
    
                locationManager = (LocationManager)  this.getSystemService(Context.LOCATION_SERVICE);
                criteria = new Criteria();
                bestProvider = String.valueOf(locationManager.getBestProvider(criteria, true)).toString();
    
                //You can still do this if you like, you might get lucky:
                @SuppressLint("MissingPermission") Location location = locationManager.getLastKnownLocation(bestProvider);
                if (location != null) {
                    Log.e("TAG", "GPS is on");
                    latitude = location.getLatitude();
                    longitude = location.getLongitude();
                  senddata(latitude,longitude);
    
                }
                else{
                    //This is what you need:
                    locationManager.requestLocationUpdates(bestProvider, 1000, 0, this);
                }
    
        }
    
        private void senddata(final double a, final double b){
        Log.d(TAG, "aum your wish fullfilled");
        class AsyncT extends AsyncTask<Object, Object, Void> {
    
    
    
    
    
    
    
            @Override
            protected Void doInBackground(Object... voids) {
    
    
                try {
    
    
                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                    nameValuePairs.add(new BasicNameValuePair("latitude", String.valueOf(a)));
                    nameValuePairs.add(new BasicNameValuePair("longitude", String.valueOf(b)));
    
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://example.com/send.php");
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);
                    InputStream in = response.getEntity().getContent();
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(in));
                    StringBuilder str = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                        str.append(line + "\n");
                    }
                    in.close();
    
    
                } catch (Exception e) {
                }
                return null;
            }
    
    
    
    
    
    
    
        }
    
    
    
    }
    
    
        @Override
        public void onLocationChanged(Location location) {
    
            latitude = location.getLatitude();
            longitude = location.getLongitude();
            senddata(latitude,longitude);
    
    
        }
    
        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
    
        }
    
        @Override
        public void onProviderEnabled(String provider) {
    
        }
    
        @Override
        public void onProviderDisabled(String provider) {
    
        }
    }
    
     