Java tutorial
package com.appdynamics.demo.gasp.utils; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Context; import android.location.Criteria; import android.location.Location; import android.location.LocationManager; import android.support.v4.app.FragmentActivity; import android.util.Log; import com.appdynamics.demo.gasp.fragment.LocationFragment; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; /** * Copyright (c) 2013 Mark Prichard * <p/> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p/> * http://www.apache.org/licenses/LICENSE-2.0 * <p/> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class LocationServices { private static final String TAG = LocationServices.class.getName(); /** * Enable location checking (via LocationFragment) * @param context the application context */ public static void enableLocationChecking(FragmentActivity context) { try { if (GooglePlayServicesUtil.isGooglePlayServicesAvailable(context) == ConnectionResult.SUCCESS) { // Check current location Location location = LocationFragment.getLocation(context); if (location != null) { Log.d(TAG, "Location: " + String.format("%.6f", location.getLatitude()) + ", " + String.format("%.6f", location.getLongitude()) + " (via " + location.getProvider() + ")" + '\n'); } // Add LocationFragment to enable location updates FragmentManager fm = context.getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); LocationFragment locationFragment = new LocationFragment(); ft.add(locationFragment, "LocationFragment"); ft.commit(); } else Log.e(TAG, "Google Play Services not available"); } catch (Exception e) { e.printStackTrace(); } } /** * Set Location Services and get current location */ public static Location getLocation(Context context) { Location location = null; try { String svcName = Context.LOCATION_SERVICE; LocationManager locationManager = (LocationManager) context.getSystemService(svcName); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setPowerRequirement(Criteria.POWER_LOW); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setSpeedRequired(false); criteria.setCostAllowed(true); String provider = locationManager.getBestProvider(criteria, true); location = locationManager.getLastKnownLocation(provider); Log.i(TAG, "Current Latitude = " + location.getLatitude()); Log.i(TAG, "Current Longitude = " + location.getLongitude()); } catch (Exception e) { e.printStackTrace(); } return location; } }