title: android check location services enabled if using GoogleApiClient
body: <p>I am using GoogleApiClient to get current location in Service class and while starting I want to get the status of location Service of mobile, if location service is disable then I want to show popup to enable it.</p>
  
  <p>So how do I check the status of location service using <strong>GoogleApiClient</strong></p>
  
  <p>here is my Service class</p>
  
  <pre><code>public class MyService extends Service implements LocationListener,
  GoogleApiClient.ConnectionCallbacks,
  GoogleApiClient.OnConnectionFailedListener{
  
  
      private GoogleApiClient mGoogleApiClient;
      private LocationRequest mLocationRequest;
  
  
  
  
      private static final long INTERVAL = 1000 * 300;
      private static final long FASTEST_INTERVAL = 1000 * 200;
  
      public MyService() {
          super();
  
      }
  
  
      @Override
      public void onCreate() {
          super.onCreate();
          //initialize location request
          mLocationRequest = new LocationRequest();
          mLocationRequest.setInterval(INTERVAL);
          mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
          mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
  
          //initialize GooleApiClient
          mGoogleApiClient = new GoogleApiClient.Builder(this)
          .addApi(LocationServices.API)
          .addConnectionCallbacks(this)
          .addOnConnectionFailedListener(this)
          .build();
  
                  //code to find nearby using TimerTask
                  Timer timer = new Timer();
                  TimerTaskFindNearby findNearby = new TimerTaskFindNearby(getApplicationContext());
                  timer.scheduleAtFixedRate(findNearby,1000,AppDataHandler.TASK_TIME);
  
  
      }
  
      @Override
      public int onStartCommand(Intent intent, int flags, int startId) {
  
          mGoogleApiClient.connect();
          Log.d("Service","onstartcommand");
          return Service.START_STICKY;
      }
  
      @Override
      public void onConnected(Bundle arg0) {
  
  
          Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
          if (location == null) {
              LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
          }
          else{
              onLocationChanged(location);
          }
  
      }
  
  
  
      @Override
      public void onLocationChanged(Location location) {
  
  
          AppDataHandler.myLocation.setLatitude(String.valueOf(location.getLatitude())+"");
          AppDataHandler.myLocation.setLongitude(String.valueOf(location.getLongitude())+"");
  
          //store on shared pref
          SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("FriendFinderSharedPref", Context.MODE_PRIVATE);
  
          LocationBean myLocation = new LocationBean();
          myLocation.setLatitude(String.valueOf(location.getLatitude())+"");
          myLocation.setLongitude(String.valueOf(location.getLongitude())+"");
          myLocation.setMobile(sharedPreferences.getString("myMobile", "noData"));
  
          //save to shared pref to make accessible from TimerTask
          Gson gson = new Gson();
          Editor editor = sharedPreferences.edit();
          editor.putString("myLocation", gson.toJson(myLocation).toString()); 
          editor.commit();
  
          //store location on server by using volley String request
          String url = baseURL+"userdata/savemylocation";
  
  
              //inform to activity
              sendBroadcast();
      }
  
  
      //send broadcast from activity to all receivers listening to the action "ACTION_STRING_ACTIVITY"
      private void sendBroadcast() {
          final Intent new_intent = new Intent();
          new_intent.setAction(AppDataHandler.ACTIVITY_RECEIVER_ACTION);
  
          sendBroadcast(new_intent);
  
  
      }
  
      @Override
      public void onDestroy() {
          Log.d("service", "destroy");
          super.onDestroy();
      }
  
      @Override
      public void onConnectionFailed(ConnectionResult arg0) {}
      @Override
      public void onConnectionSuspended(int arg0) {}
  
  
      @Override
      public IBinder onBind(Intent intent) {
  
          return null;
      }
  
  }
  </code></pre>