HomeTaskerSave the location with Tasker

Save the location with Tasker

Dude, where's your car?

I f you are using Google Now, you are aware of the ‘where I parked my car’ card. The additional card is displayed (needs to be enabled in settings) whenever Google thinks you have stopped driving, and abandoned the vehicle. I don’t drive on a regular basis, I cycle everywhere and I find it very flattering each time Google serves me this card. It proves that Google doesn’t know everything about us just yet, but if you quick enough – the card can be used to find your bike again. Sadly not when it’s stolen.
With the incoming trip to China, I realized that Google services won’t be helping me in my daily life. China blocks their servers. If you are lucky enough to go traveling where Google can’t go or if you simply prefer other than stock launcher, you might be interested in the replicating the profile below. The  project has been suggested to me by Mishaal Rahman from xda-developers.com  so thanks to him for that.

Dude, where’s my car?

The profile is fairly simple. I’m going to use AutoVoice or a widget button to save the location. A widget will provide us with a feedback. You will be able to navigate back to saved location via notification or a voice command.
It’s good to point out that the Android does a pretty decent job at managing your location, but if you prefer to keep your services disabled – you have to enable the location services before getting the value of the %LOC variable. The more location services you have enabled the quicker the fix. By default, Android will check the GPS, mobile data, and WIFI. If you already toggle these – you know what to do, if you are happy with the way the Android works – just leave it on. Otherwise, use AutoTools or the run shell action:

settings put secure location_providers_allowed=gps,network,wifi

Secure Settings can also be used to toggle these (here is how to make the Secure Settings enabled). For the sake of this tutorial, I will show you how to use both, a widget and voice command trigger.

Save the location

LocCar
LocCar 
	Abort Existing Task
	A1: Variable Clear [ Name:%LastLocation Pattern Matching:Off ] 
	A2: Notify Cancel [ Title:Location Issue Warn Not Exist:Off ] 
	A3: Get Location [ Source:Any Timeout (Seconds):20 
		Continue Task Immediately:Off Keep Tracking:Off Continue Task After Error:On ] 
	A4: Variable Set [ Name:%LastLocation To:%LOC 
		Recurse Variables:Off Do Maths:Off Append:Off ] 
	A5: Notify [ Title:Location Saved Text:Tap to 
		Navigate Icon:hd_location_place Number:0 
		Permanent:Off Priority:5 ] If [ %LastLocation Set ]
	A6: Set Widget Icon [ Name:LocCar 
		Icon:content://com.android.externalstorage.documents/document/
		primary%3AMaterial-Icons-010317-032209%2Fres%2Fdrawable-xxxhdpi%2Fic_car.png ]
		If [ %LastLocation Set ] 
	A7: Notify [ Title:Location Issue Text:Im sorry location could no be set.
		Icon:hd_aaa_ext_car Number:0 Permanent:Off Priority:5 Actions:(1) ]
		If [ %LastLocation !Set ]	
	A8: Set Widget Icon [ Name:LocCar Icon:content://com.android.externalstorage.documents/document
		/primary%3AMaterial-Icons-010317-032710%2Fres%2Fdrawable-xxxhdpi%2Fic_car.png ]
		If [ %LastLocation !Set ]

Getting location (A1-A4)

There are few things I want to do before getting the location set. Because most of the time %LOC will have a value assigned already (last fix) I only want to use the location coordinates requested through the profile. I will use the global variable %LastLocation to store these coordinates. If the task has been run again due to error or a timeout, I need to clear existing warning notification with the Notify Cancel.

Notifications (A5,A7)

There are two outcomes of the Get Location action. We will end up with a new set of coordinates, or the action will fail to acquire the coordinates. If the fix is found, a notification will be displayed. Note the name of it. We will use this name to trigger the Return Location profile later. If the fix is not found, we want to display a warning with an option to rerun the same task again (Action Perform Task assigned as a button).

Button (A6,A8)

I mentioned earlier that there will be a button;  which will change the color to show us a state of our parking profile. Color codes are:

  • white (ready)
  • red (fail)
  • green (armed)

All you need is a widget (not the shortcut) placed on your home screen for the task which will save the location. Make sure to assign an icon to this task to be able to add a task shortcut from the widget screen. I’m using this instead of the shortcut as I get the Tasker to change the color of the icon according to the current state.
One of my favorite ways of getting the icons is the Material Design Icons collection, as you can find the one that suits you and quickly provide the color alternatives.
I have labeled the actions to show which one correspond with fail/success outcomes. The IF conditions %LastLoctation = set/not-set determines that outcome.

Return the location

ReturnLocation
ReturnLocation 
        A1: Send Intent [ Action:android.intent.action.VIEW 
            Cat:None Mime Type: Data:google.navigation:q=%LastLocation&mode=w 
            Extra: Extra: Extra: Package:com.google.android.apps.maps 
            Class: Target:Activity ] 
	A2: Set Widget Icon [ Name:LocCar Icon:content:
            //com.android.externalstorage.documents/document/primary%3
            AMaterial-Icons-010317-032200%2Fres%2Fdrawable-xxxhdpi%2Fic_car.png ] 
	A3: Wait [ MS:0 Seconds:3 Minutes:0 Hours:0 Days:0 ] 
	A4: Variable Clear [ Name:%LastLocation Pattern Matching:Off ]

The task is very simple. We will run a Google Maps intent which will contain a  location link:

Action:android.intent.action.VIEW
Data:google.navigation:q=%LastLocation&mode=w
Package:com.google.android.apps.maps
Target:Activity

Our location global variable will supply the needed coordinates. Once this is done, we just need to clean up the variable (please add a wait action) and change the color of the widget icon to white.

Profile: Return To Location

Return To Location
Profile: Return To Location
	Event: Notification Click [ Owner Application:* Title:Location Saved ]
Enter:
        ReturnLocation

To trigger this task from the notification create an event Notification Click and add the name of the notification created earlier (Location Saved)
You have a complete profile ready.

Linking the AutoVoice

Ss
Profile: Save Location
	Event: AutoVoice Recognized [ Configuration:Easy Commands: 
               save my location,save this location,
               save my parking spot,save this parking spot,
               remember my parking spot,remember my location,
               mark this location,mark this spot,mark this parking spot
               Responses: okay i'll save your parking spot ]
Enter: LocCar

Should you wish to add a voice trigger, create an event AutoVoice Recognized profile. And fill them with the potential spoken commands that you would use, separated by commas. If you wish to hear the response – include one in the Responses menu. Once this is done, link this with the LocCar task created earlier.
If you wish to use an AutoVoice command to find your saved location as well. Create a new event AV recognized, and link it to the ReturnLocation task.

Conclusion

It is easy to assume that everyone has access to the same as mine, resources, but this is not often the case. This project can be modified and used for other purposes, and unlike Google Now parking card, it’s not dependent on Google services. You can also experiment with AutoNotification to make the notifications prettier or more interactive. I kept the entire project close to Tasker vanilla experience (apart from AV).
You could also create an array what would store more notification at once, or do something interesting with a collection of these points on the map. Let me know if the project inspires you – I’m always happy to look at the reader’s projects.

Project Download

Download project files here. Bear in mind that Patreon supporters have early access to project files and videos.

PayPal

Nothing says "Thank you" better than keeping my coffee jar topped up!

Patreon

Support me on Patreon and get an early access to tutorial files and videos.

image/svg+xml

Bitcoin (BTC)

Use this QR to keep me caffeinated with BTC: 1FwFqqh71mUTENcRe9q4s9AWFgoc8BA9ZU

New to Tasker?

Tasker Quick Start – Getting started with Tasker

0
From newb to not so newbie in 10 min

Best Tasker Projects

How to use Raspberry PI as WOL (wake on lan) server

0
While you could wake up your PC from a mobile directly, having a dedicated server capable of doing so is the best solution. The reason is simple. You can hook up as many devices as you wish with a single endpoint. This is why Raspberry Pi is perfect for this.

How to wake on LAN computers and put it to sleep with Power Menu,...

0
How to Wake on LAN properly via Android, Alexa, Google Assistant and Web

7 awesome Bluetooth keyboard shortcuts for Android

0
7 unique Android shortcuts that you can add to any Bluetooth keyboard.

Smart overnight charging with Tasker

0
Still keeping your phone plugged in overnight? Try smarter overnight charging with this profile

One thing that Join app can’t do and how to fix it with Tasker

0
It's not possible to share the clipboard automatically between join accounts registered to 2 different emails. But you can fix this with tasker.

Essential Guides

Tasker: Seconds into DD:HH:MM:SS (dynamic)

0
It's time to.... ok it's a pun, but I will show you how to master time and convert seconds to DD:HH:MM:SS dynamically

4 ways to organise Tasker projects

0
Keep your Tasker tidy!

A better way to store Tasker credentials

0
The more clever way of managing credentials

Annoyed with dozens of AutoApps populating your app drawer? Here is a fix!

0
Clear your app drawer from the clutter in seconds

Putting AutoTools pie chart to a good use – SSID logger

0
Who wants a piece of the pie (chart)?