I like when a software vendor explains why each and every permission is included. Vendors who do this are usually not mining your data, or at least you believe there is some thread of integrity on the part of the developer. There might be some ignorance on my part not knowing all that mobile Android Garmin Connect can accomplish due to my lack of newer devices (and I apologize for this in advance), but here is the list of Android permissions, and it would be helpful if Garmin or knowledgeable users could annotate why they are needed (my comments are underlined):
Calendar
- read calendar events plus confidential information
Garmin Connect has it's own calendar, and it's not saying it can write your Connect calendar back to your device calendar. Why does it have to read my calendar plus confidential information? I don't even see a view of the Connect calendar via mobile either.
Contacts
- read your contacts
Why? If this is to suggest people who are also Connect users for some social aspect, let them say so or ideally just make it a web setup function.
Location
- approximate location (network-based)
- precise location (GPS and network-based)
Isn't the relevant location data embedded in the files you're uploading? Is this for live tracking or does this also use the location data from the connected device?
SMS
- receive text messages (SMS)
Phone
- directly call phone numbers
- read call log
Why? What functionality requires this? Could this be needed for notifications?
Photos/Media/Files
- test access to protected storage
- modify or delete the contents of your USB storage
Camera
- take pictures and videos
Maybe it's just because of my particular Garmin device, but I haven't found a part of Connect which takes pictures or videos.
Device ID & call information
- read phone status and identity
Other
- download files without notification
- read Google service configuration
- run at startup
- draw over other apps
- pair with Bluetooth devices
- full network access
- Google Play license check
- control vibration
- send sticky broadcast
- access Bluetooth settings
- view network connections
- mock location sources for testing
- prevent device from sleeping