Skip to content

swooby/alfred.2017

Repository files navigation

Alfred: Personal Assistant [for Android]

Journal

Alfred[.2017] is an Open Source personal project of mine to get my Android to eventually do all of the following [and more]:

  1. Text-To-Speech all current/incoming notifications.
  2. BT/BLE Scanner that detects when a button is pressed on certain BT/BLE devices.
  3. Speech-To-Text various commands.
  4. Do all of this in an always helpful non-annoying way.

The target audience is me: I ride my motorcycle a lot and do not have any desire to look at or manipulate the screen. I would like to know when my wife texts me and what she said, or when I get an important reminder/email/call. It is also nice to know any other useful information such as the current time, weather, traffic conditions, or current song that is playing; automatically attenuating the volume of commercials is another bonus.

Anyone that regularly finds themself using a hands-and-screen-free environment might find this app useful.

Milestones

* = Not Yet Implemented

  • M4: Speech-To-Text (aka: Voice Recognition & Commands)
  • M3: BLE Scanner that detects button presses
  • M2: More useful app state and UI This is where the app starts to crystallize in to something useful.
    • *Bluetooth Headset Listener and Profile Handling
    • *Offline Storage (Firebase?)
    • *Location Listener
    • *Analytics
      • *Volume up/down; time in song
      • *...
  • M1: Generally reliable speaking of the notifications that I encounter on a daily basis.
    • Release to store
    • Sign TravisCI build
    • Upload TravisCI build to Store
    • Force disabled while Phone offhook
    • Notification Parsers:
      • Pandora
      • Spotify
    • Speak Volume, Cellular, WiFi, Screen, Charging, Phone states
    • Reliable startup and detection of profiles and notification access

Issues:

  1. Phone numbers may be spoken as "six billion one hundred ninety seven million nine hundred sixty six thousand two hundred ninety nine".
  2. Notifications may repeat a lot (ex: MyGlass Connected, Chrome Media Playing, Google Play Updates, etc).
    I have a temporary mitigation for this, but will hopefully eliminate this with a future refactor of NotificationParserManager.
  3. 20170501: Not disabling when Profile == "Any" and turning off my Bluetooth Interphone F5MC
  4. 20170501: DebugActivity Share doesn't sent file (99% certain this is just a permissions issue)

Unscheduled Ideas (Unsorted; typically most recent at top):

R&D:

Related Projects:

Development

  • If Mobile or Wear physical device wireless debugging does not connect in Android Studio:
    (from https://youtu.be/lLUYPdaf_Ow)
    1. Look on device Dev options Wireless debugging for pairing ip address and port
    2. Example: adb pair 10.0.0.113:42145
      (replace the ip address and port with yours)
    3. Look on device Dev options Wireless debugging for connection ip address and port
    4. Example: adb connect 10.0.0.113:43999
      (replace the ip address and port with yours)
  • To record videos, use https://github.com/Genymobile/scrcpy
    https://github.com/Genymobile/scrcpy/blob/master/doc/recording.md#recording
    (confimed works on both Mobile/Phone and Wear/Watch!):
    • brew install scrcpy
    • scrcpy -s 10.0.0.113:43999 --record=wear.mp4 & scrcpy -s 10.0.0.137:46129 --record=mobile.mp4 &
      (replace the ip address and port with yours)
  • WATCH OUT FOR http://stackoverflow.com/a/37081128/252308!!!
  • To list packages:
    adb -s 10.0.0.161 shell pm list packages | grep com.lockly.smartlock