Location Based Time Capsule on Android
description
Transcript of Location Based Time Capsule on Android
S
Location Based Time Capsule on Android
Meng ChengQin Huang
Yiteng ZhangZhong Ren
Overview
“Sensing data without knowing the location is meaningless.”
User can save a message inside a “capsule” and bind it to a certain time and/or location
Leave the “capsule” for him/herself or for other users Potential use cases:
Birthday/anniversary greetings Location-based reminders Leave a note for whoever comes to Yale Send a message to the future self
Client
Easy, smooth navigation using Fragments Send capsule to other users from the contact
list User can directly select any location on the map Conveniently select any date/time on the
calendar
Server
MySQL + JDBC HTTP + JSON
http://<server>/contacts?user_id=<userid> {"contacts":[{"id":1,"name":"zr36"},{"id":2,"name":"yry3"}]}
DB connection pool to support concurrent access Commit / rollback to ensure data integrity Optimized search on location
GCM Service
Each device has a unique key for GCM The key registered both on GCM and Server Push time/location capsule to user’s device Instantaneous and Energy-efficient
What is novel?
Users can define a “capsule” in three dimensions: Time Location User visibility
Server can instantaneously push matched capsule via GCM to the corresponding users
What is substantial?
Client adaptively updates its location Adjust update interval according to the search
result on the server and the location change of the device
Extend battery life time Server adaptively searches for location capsules
Search inside a latitude/longitude-bounded square centered at the client’s location
If no match found, enlarge the search square and reduce the update rate of the device
Future Improvements
More furnished UI More efficient server setup e.g. MongoDB Enable capsules to store pictures or audio Use Amazon S3 to separate persistent storage
from application server Integration with Facebook / Google+
Demo
Thanks for your attention!