To know when an app posts a notification.
Also used to ensure stability and reliability for Good Vibrations, and as support for the actions that are not notification based, like SMS.
Required.
To select a contact for a contact pattern and get the phone number to watch for.
Also used to display contact icons in several screens when contact patterns are shown.
Optional if you are running Android 6.0 or higher. It will be requested when needed.
To respond to SMS.
Also needed to extract the phone number(s) and use them for contact patterns.
Optional if you are running Android 6.0 or higher. It will be requested when needed.
To respond to MMS.
Also needed to extract the phone number(s) and use them for contact patterns.
Optional if you are running Android 6.0 or higher. It will be requested when needed.
To respond to Calls.
Also needed to be able to set in-call patterns for other actions, so they vibrate differently when you're in a call.
Optional if you are running Android 6.0 or higher. It will be requested when needed.
To initalize Good Vibrations when your device is started.
Required.
To export your configuration to SD, or import a saved configuration.
Optional if you are running Android 6.0 or higher. It will be requested when needed.
For Twitter's Fabric.io.
As noted above, this is used for crash reporting and development priorities based on Android versions / devices in use.
Required.