Using Google Maps Service and GPS in Android

Snapz - Innovative Phone Cases for iPhone 5 and 5s

The first thing you need to make before use Google maps v2 is get a key for Google:

  • Navigate to your project in the Google APIs Console.
  • In the Services page, verify that the “Google Maps Android API v2” is enabled.
  • In the left navigation bar, click API Access.
  • In the resulting page, click Create New Android Key…
  • In the resulting dialog, enter the SHA-1 fingerprint, then a semicolon, then your application’s package name. For example:
  • The Google APIs Console responds by displaying Key for Android apps (with certificates) followed by a forty-character API key, for example:

Set this Key in your Android manifest file:

            android:value="@string/google_maps_key" />
<string name="google_maps_key" 
templateMergeStrategy="preserve">...your key ...</string>

After that, you can use class

The steps to use GoogleMaps are:

  1. Create a view activity_main.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android=""
  2. Create activity, and reference to @+id/map:
    private GoogleMap googleMap; // Might be null if Google Play services APK is not available.
    if (googleMap == null) {
        googleMap = ((MapFragment) getFragmentManager().findFragmentById(;
        // check if map is created successfully or not
        if (googleMap == null) {
                    "Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
        else {
            // Changing map type

The Toast.makeText action shows a text indicating that the service of Google maps are not available.

The second thing is initialize the GPS:

To do this, we create a class (GpsLocation) that implements LocationListener to manage the logic of Gps.

We have a constructor, with the context and TextView to show Gps Status:

public GpsLocation(Context mContext, TextView gpsStatusTextView) {
    this.mContext = mContext;
    this.gpsStatusTextView = gpsStatusTextView;

A method getLocation that initializes the gps service and obtains gps location:

public Location getLocation() {
    try {
        locationManager = (LocationManager) mContext
        // getting GPS status
        isGPSEnabled = locationManager
        // getting network status
        isNetworkEnabled = locationManager
        if (!isGPSEnabled && !isNetworkEnabled) {
            // no network provider is enabled
        } else {
            this.canGetLocation = true;
            // First get location from Network Provider
            if (isNetworkEnabled) {
                        MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                Log.d("Network", "Network");
                if (locationManager != null) {
                    location = locationManager
                    if (location != null) {
                        latitude = location.getLatitude();
                        longitude = location.getLongitude();
            // if GPS Enabled get lat/long using GPS Services
            if (isGPSEnabled) {
                if (location == null) {
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("GPS Enabled", "GPS Enabled");
                    if (locationManager != null) {
                        location = locationManager
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
    } catch (Exception e) {
    return location;

This class has two attributes, latitude and longitude which are initialized in getLocation method.

In MainActivity, we get these values:

gpsLocation = new GpsLocation(this, gpsStatusTextView);
if (gpsLocation.canGetLocation()){
    double longitude = gpsLocation.getLongitude();
    double latitude = gpsLocation.getLatitude();

Points of Interest

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.