Monday, January 31, 2011

How the requested permissions are used.

Your personal information

1. add or modify calendar events and send email to guests
permission code: android.permission.WRITE_CALENDAR

Used by Calendar sync module.
This permission is used to insert the Class Buddy's event record into Google Calendar's database during the sync.

* It sounds this permission also allows automatic emailing to the guests registered for certain events. However, Class Buddy's event is always created without guest attachment and never use this side of permission. Since both, write and send email permission are included together in this permission, we cannot drop only the send email portion.

* We have ABSOLUTELY NO interest in sending emails and Class Buddy NEVER send email using this permission. Simply, Class Buddy doesn't have any program code sending email.


2. read Browser's history and bopokmarks
permission code: com.android.browser.permission.READ_HISTORY_BOOKMARKS

Used by bookmark attachment screen.
In Attachment option, there's are bookmark. When user try to attach bookmark, Class Buddy shows the list of available items and let user pick the one. Without this permission, Class Buddy cannot generate the bookmark list.


3. read calendar events
permission code: android.permission.READ_CALENDAR

Used by Calendar sync module.
This permission is used to fetch the event records in Google Calendar's database during the sync.


4. read contact data
permission code: android.permission.READ_CONTACTS
Used by contact attachment screen.

In Attachment option, there's are contact option. When user try to attach contact, Class Buddy shows the list of available items and let user pick the one. Without this permission, Class Buddy cannot contact the list.

* We have a plan to drop Read contact.
We are planning to replace the current Contact picker screen to the standard Contact picker in user's phone. However, because each contact picker from different phone manufacturer (HTC, Motorola, Samsung,...) behaves differently, we are still doing evaluating possible options.


Network communication

1. Full internet accress
permission code: android.permission.INTERNET

Used by "Import from Google Docs" screen.
In order to connect to Google spreadsheet and fetch the spreadsheet contents, Class Buddy need this permission


Storage

1. modify/delete SD card contents.
permission code: android.permission.WRITE_EXTERNAL_STORAGE

Used by "Export" screen. Without this permission, Class Buddy cannot save the data to SD card.


Phone calls

1. Read phone state and identity.
permission code: android.permission.READ_PHONE_STATE

Used by sound alarm.
When Class Buddy's sound alarm goes off, Class Buddy checks whether the user is currently talking through the phone. If so, Class Buddy sends quiet alarm sound to the earpiece instead of the speaker.


System tools

1. prevent phone from sleeping
permission code: android.permission.WAKE_LOCK

Used by sound alarm.
When Class Buddy's sound alarm goes off, Class Buddy temporarily unlock the phone and run the Alarm dialog screen. Without this permission, Alarm screen cannot be displayed.