Safe Arrival - know when your loved ones are safe again

Consider this scenario:  Your teenage child is going out for the evening.  As a responsible parent you feel you should wait up so that you know they arrived home safely.  Using this application, however, you can be comfortable going to sleep, knowing that you will be woken up if your child is not home by a certain time.  Here's how it works:  You run the Safe Arrival application and create an "event".  Creating an event is like setting an alarm clock.  At the time you choose, an alarm will sound that will wake you up, unless your child has arrived home and indicated that your alarm can be safely turned off.  So if your child arrives home safely, you sleep through the night.  Otherwise you are woken up by the alarm to investigate their whereabouts.  If your child has the
Safe Arrival application on their phone as well, they can use it to turn off your alarm.  If not, they can send a normal text message to your phone, using a special syntax, that will turn off your alarm.  That text message is intercepted by the Safe Arrival application so that it doesn't wake you up.

Curfews

But the previous scenario only applies for children that have already earned a certain amount of trust.  Sometimes a parent needs to enforce a curfew for a child that would rather stay out past the time they should be home.  The Safe Arrival application is designed to help with this scenario as well.  It works just as described above, with one difference:  Your child must enter a password in order to turn off your alarm.  Don't tell your child what the password is before they leave the house.  Once they've left, write the password down and leave it at some agreed-upon place in the house.  When your child gets home, they see the password and enter it into the Safe Arrival application on their phone, or include it in the text message they send to turn off your alarm.  If they're not home in time, they can't turn off your alarm, because they don't yet know the password.  In this manner, you can be assured that they actually arrived home (or at least were home at some point after you displayed the password).

Working Parents

What if you're working while your child is returning home from school by themselves?  You want to make sure your child makes it home as expected, right?  You could set a repeating alarm or notification to sound at the time they should be home.  When your loved one arrives home, they use their phone to turn off your alarm.  If all goes well, you work through the day without ever worrying about it.  If they are delayed arriving home for some reason, your alarm or notification sounds and you can call them.

How to Use It

A user of this application is either a "worrier" or a "traveler".  The worrier is the person waiting at home, while the traveler is the person making the trip or outing.  The worrier must have the Safe Arrival application installed on their phone.  The traveler will find using the application to be very convenient as well, but it's not necessary for them to have it installed, so long as they can send and receive text messages with their phone.  The worrier creates the "event", which is like setting an alarm clock, except that they also name the traveler and the amount of time, prior to the alarm going off, that the traveler can turn it off.  The traveler can be selected from the Contacts list, or by entering a name or phone number.  If the traveler has the application installed on their phone, the event definition will be immediately visible to them; if not, they will receive a text message from the Safe Arrival application on the worrier's phone at the beginning of the event, that is, at the earliest time that the worrier says the alarm can be turned off.

After setting the alarm, the worrier can go to sleep.  If the traveler arrives home before the alarm time, the alarm is turned off and they can sleep peacefully.  A silent notification is raised to provide the traveler's arrival time and and any message they sent when they arrived.  It's silent so it won't wake up the worrier either.  When the worrier wakes up, they can view the notification to see this information.  If the traveler doesn't arrive in time, the alarm will sound, waking up the worrier.  This alarm is raised using a "insistent notification", which means it's just like getting a notification for an incoming text message or missed call, except that the audio for the notification continues until the worrier draws down the notification bar.  It is then silenced.

Read the detailed user's guide for an in-depth description of creating events and the various capabilities of the Safe Arrival application.

Waiting Up

Sometimes a worrier finds they are awake anyway at the expected arrival time, and in this case, would prefer to receive some sort of audible notification when the traveler arrives instead of a silent one, and to get a normal notification, not an insistent one, at the expected arrival time if the
traveler does not arrive in time.  There is a worrier setting called "Waiting up" that can be set in such a situation to make these changes to the application's behavior.

A Traveler Without the Application

If a traveler has been selected that doesn't have Safe Arrival installed on their phone, they will receive a text message at the earliest time the worrier's alarm can be disabled describing their expected arrival time and how to send a message that turns off the worrier's alarm.  The critical part is to send a text message where the first word is "SafeArrival".  The capitalization of the word is not important, but it is important that it be one word — there shouldn't be any blanks in "SafeArrival".  If the event is one that requires a password to turn off the alarm, the password must also be included in the message.  Again, the capitalization of the password is not important.  If any words remain in the message after removing the leading "SafeArrival" and, if necessary, the password, the rest of the message is made available to the worrier as the arrival message, so the traveler can use it to convey additional information to the worrier without sending a normal text message, which might wake them up.

Notifications

Safe Arrival uses normal notifications to inform the user of important changes, and an "ongoing" notification whenever an event is "under way", meaning that the earliest time the alarm can be turned off has passed, but the expected arrival time has not yet occurred.  The ongoing notification serves as a (silent) reminder that an expected arrival time is near, and as a convenient way to navigate to the event definition.  This is especially convenient for the traveler, as it provides quick access to the controls for declaring that they've arrived.  If you would rather not see an ongoing notification, however, simply disable it in the notification settings of the application.

SMS Messages

The Safe Arrival application sends text messages to the traveler's phone for certain events and receives text messages from the traveler's phone.  Some plans charge extra for SMS messages, so be aware of the SMS usage.  For a traveler that has Safe Arrival installed, an SMS message is sent for any of the following:

  • A worrier creates, deletes, or modifies an event definition in some way that affects that traveler.
  • A worrier manually "refreshes" the traveler's trip definition (using the menu item).  This is generally not necessary, but might be useful if some communication error kept an earlier update from being sent to the traveler.
  • A traveler declares they have arrived.

For a traveler that doesn't have Safe Arrival installed, an SMS message is sent at the following times:

  • A worrier creates, deletes, or modifies an event definition in some way that affects that traveler while the event is under way.
  • A worrier manually "refreshes" the traveler's trip definition (using the menu item) while the event is under way.
  • When a traveler successfully turns off the alarm, a confirmation response is sent.
  • If only 10 minutes (by default) remain before the expected arrival time and the traveler has still not declared that they've arrived.
  • When a traveler missed the expected arrival time.

Permissions

We think it's important that developers disclose what their applications are doing with certain permissions, so here is our description for this application.  The following standard Android permissions are needed for the game.  This is an explanation of each permission and a description of what it is used for:

  • SEND_SMS, RECEIVE_SMS - The program sends and receives SMS messages to exchange information between the worrier and the traveler.
  • READ_CONTACTS - This permission is needed to translate a phone number into a display name from your contacts list, and to fetch an image thumbnail of the contact to display on the screen that contains a list of events.  This permission is also needed to launch the "contact picker" activity, to let you easily choose the traveler from among your contacts.
  • WAKE_LOCK - This permission is used to briefly prevent the device from going into a low-power sleep mode.  When an SMS message destined for the program is received, an Android "service" is created to process it.  The service parse and processes the message, possibly raising a notification.  A "wake lock" is used during this time to prevent the phone from sleeping.  Rest assured the wake lock is held for as brief a period of time as possible, and the service does not run all the time.
  • VIBRATE - This permission is needed to raise a notification that include vibrations.
  • RECEIVE_BOOT_COMPLETED - When information is sent between a worrier and traveler, there's a chance that you don't have phone service at that time.  In a case like that, the program periodically retries sending the message.  This permission allows the program to run when the device has finished booting up to check if there are outgoing messages that need to be sent.  If the outgoing queue is empty, very little code runs at bootup, and the service that performs this check completes immediately so there will be no unnecessary memory usage on your device.

Content Rating

The Android Market requires that all applications be rated using the market's content-rating guidelines.  This application is rated "Low Maturity".  According to Google's guidelines, it cannot be labeled "Everyone" since it enables "communication between users".  Our application send information to another user and in one instance allows the user to include a short text message with transmission.  We assume this communication falls into the definition of that phrase.

Install Safe Arrival on your Phone

Go to the Android Market page for Safe Arrival to install the application from a browser.  Alternatively, if you have a program like Barcode Scanner installed on your phone, you can scan this barcode to direct the Android Market application on your phone to view the Safe Arrival application.  You can then download it if you wish.

QR code

Version History

If you are interested in the evolution of Safe Arrival, here is the version history so far.

Credits