/Track-My-Location

Android real-time location tracker app (learn using Firebase :fire:, Google Maps & Location Api) :globe_with_meridians:

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Track My Location

This is a simple android app where you can brodcast your location and everyone who has your dynamically generated unique key can track you in near real-time.

I created this project just for learning puposes particularly about firebase (firestore db), google maps api and google location api.


Screenshots


References


How it works?

  • The first device get continous location update from gps, network etc. then
  • Write and update the location data to a specific firebase firestore document
  • Last, the second device read that firebase firestore document and show the marker in that location

Hot to integrate Google Maps & Location API

To use google maps in an android app you can use SupportMapFragment or MapView

  • Using google maps fragment (inside a layout or as a root tag)
<fragment
	android:id="@+id/map"
	android:name="com.google.android.gms.maps.SupportMapFragment"
	android:layout_width="match_parent"
	android:layout_height="match_parent"/>
  • Then you have to add permissions and google maps api key in the AndroidManifest.xml file

Add permisions for coase and fine location also add meta-data tag for API key


Integrate Google Play Services for Firebase into android project

  • Add this gradle plugin 'com.google.gms:google-services:3.1.1' into dependencies block of the top-level gradle build file

  • Apply the google play services plugin in the app level gradle build file (app project)

  • Then you can add google play services library for maps, location, places etc. (firebase needs google play services to operate)

  • You need to download and add google-services.json file to your project_name/app/ directory from firebase console when you add an android app to your firebase project
  • Here are the complete figure

enter the app package name & SHA-1 key (optional for firebase auth)


Getting API Key for Google Maps & Location

  • Go to the google cloud console page and click credentials submenu (or Get API Key )

  • Then create a new credential

  • New API key has been created, you can copy the key and paste in the manifest file. To restrict access of the key click the restrict button

  • You can restrict api key usage by selecting the platform or IP address by which the api call would be requested (Application restrictions)

  1. Select one of the application restrictions (in this case Android)
  2. Insert your android app package name
  3. Insert SHA-1 fingerprint of your app
  4. Click Save button

  • To get SHA-1 key you can use your android studo by opening your particular project -> select signingReport gradle task -> copy & paste the SHA-1 key into the android app restriction form