Back to project page Mapyst.
The source code is released under:
Apache License
If you think the Android project Mapyst listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2013 Mapyst//from ww w .j av a 2s.com * * 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 * * http://www.apache.org/licenses/LICENSE-2.0 * * 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. */ package com.mapyst.android; import com.mapyst.route.InterpretedInfo; import com.mapyst.route.Interpreter; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.widget.Toast; public class LocationFinder { private LocationManager mlocManager; private LocationListener mlocListenerGps; private LocationListener mlocListenerNetwork; private Location currentGpsLoc, currentNetworkLoc; private Mapyst app; public LocationFinder(Mapyst app) { this.app = app; } public void setupLocService() { mlocManager = (LocationManager) app .getSystemService(Context.LOCATION_SERVICE); mlocListenerNetwork = new LocationListener() { @Override public void onLocationChanged(Location loc) { currentNetworkLoc = loc; } @Override public void onProviderDisabled(String provider) { // Toast.makeText(app, "Current Network Location Disabled", // Toast.LENGTH_LONG); } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }; mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListenerNetwork); mlocListenerGps = new LocationListener() { @Override public void onLocationChanged(Location loc) { currentGpsLoc = loc; } @Override public void onProviderDisabled(String provider) { Toast.makeText(app, "Current GPS Location Disabled", Toast.LENGTH_LONG).show(); } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }; mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListenerGps); } public void endLocService() { if (mlocManager != null) { mlocManager.removeUpdates(mlocListenerGps); mlocManager.removeUpdates(mlocListenerNetwork); } } public InterpretedInfo getCurrentLocation() { if (currentNetworkLoc == null && currentGpsLoc == null) { InterpretedInfo failure = new InterpretedInfo();// known to be // unsuccessful // because it has no // suggestions Toast.makeText(app, "Sorry, we could not find your current location.", Toast.LENGTH_SHORT).show(); return failure; } Location loc = currentGpsLoc; if (loc == null) loc = currentNetworkLoc; Interpreter interpreter = new Interpreter(app.campus); return interpreter.interpretLatLng((int) (loc.getLatitude() * 1E6), (int) (loc.getLongitude() * 1E6)); } }