Sometimes when I receive a phone call whether it is from a costumer or a friend I have the feeling that I am forgetting something that I should be bringing into the conversation. In this situation I would very much like to see the latest messages I have exchanged between that person and me. If I am away from my computer, searching it on the phone can be distracting because I would have to put the call on speaker and start using the email client to search for those messages.

Wouldn't it be great to have those emails appear on a screen nearby for me? What display do I have available always, on the go that my phone could speak to? My Microsoft Band!

What it does

When somebody calls, have his/her latest email messages available to see on my band so I can stay on top of my conversation and let the caller see that we are aware of his/her situation.

How I built it

  • An Android app on Java that allows the user to:
    • Authorize the app to query the Microsoft Graph API using his/her Office 365 account.
    • Install a tile on the Microsoft Band to see the emails.
  • The Android app listens for the incoming call broadcast intent and when there is an incoming call, it starts a service that looks for the number who is calling, queries the Microsoft Graph API for contacts with that phone number and queries again the Microsoft Graph API for the latest emails messages of that contact to finally send those email messages to the user's Microsoft Band.

Challenges I ran into

The first challenge is that I was planning to develop the app on Windows Phone but neither the Windows platform, nor iOS allow third-party apps to be notified when the phone receives an incoming call, so the only platform where this can be done today is on Android.

The second challenge is that both the current stable and beta version of the Microsoft Graph API only allow to query contacts by phone number if the phone number is under the 'Mobile Phone' field, not if its under the 'Home Phone' or the 'Business Phone', so in order to try this app you have to make sure that phone number of the contact information on the Office 365 account has to be on the 'Mobile' field. I am sure this will be addressed in future versions of the Microsoft Graph API.

Accomplishments that I'm proud of

Putting everything together in a simple, elegant solution and seeing it work! :) (The Android app + android incoming call broadcast intent + querying to Microsoft Graph API + sending the info to the Microsoft Band)

What I learned

Putting together all these technologies together to work for me.

What's next for Band Caller Emails

This is version 1 of what can become a very exciting product! Right now it is only available for 1 mobile platform, 1 wearable platform and for emails on an Office 365 account, but there are tons of possibilities ahead like:

  • Not only fetch email messages, but also text messages, calendar appointments, Facebook messages, Microsoft Dynamics, etc.
  • If the user is in front of a computer have that info from the caller appear on Cortana for instance.
  • Or if we have the HoloLens on, have that caller information appear as an hologram!
Share this project: