package com.appdynamics.demo.gasp.fragment; import android.app.Fragment; import android.content.Context; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; 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 LocationFragment extends Fragment implements LocationListener { private static final String TAG = LocationFragment.class.getName(); private static LocationManager locationManager; private static String provider; public static Location getLocation(Context context) { Location location = null; try { if (GooglePlayServicesUtil.isGooglePlayServicesAvailable(context) == 0) { locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 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); provider = locationManager.getBestProvider(criteria, true); location = locationManager.getLastKnownLocation(provider); } } catch (Exception e) { e.printStackTrace(); } return location; } @Override public void onResume() { super.onResume(); locationManager.requestLocationUpdates(provider, 500, 50, this); } @Override public void onLocationChanged(Location location) { try { String locationMessage = "Location: " + String.format("%.6f", location.getLatitude()) + ", " + String.format("%.6f", location.getLongitude()) + " (via " + location.getProvider() + ")"; Log.d(TAG, locationMessage); //Toast.makeText(getActivity(), locationMessage, Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); } } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { Log.i(TAG, "Enabled provider: " + provider); //Toast.makeText(getActivity(), "Enabled provider " + provider, Toast.LENGTH_SHORT).show(); } @Override public void onProviderDisabled(String provider) { Log.i(TAG, "Disabled provider: " + provider); //Toast.makeText(getActivity(), "Disabled provider: " + provider, Toast.LENGTH_SHORT).show(); } }