Every now and then I get a nasty review or email citing the permissions of one of the DroidCatcher branded apps. I thought it would be worth some time to go through each of them ( currently 8 ) and explain a little about why each is needed.
android.permission.INTERNET – This should be obvious, but without internet access, downloading podcasts would be challenging.
android.permission.ACCESS_NETWORK_STATE – Is the device connected to the network? Is WiFi enabled? This is useful information. For example, DroidCatcher supports an auto-download feature, and you can set it to only perform downloads while connected to a wifi network.
android.permission.READ_PHONE_STATE – This permission gets a lot of attention. DroidCatcher uses it to do nice things like, pause the audio when you make or receive a phone call. It’s also required by most ad network SDK’s.
android.permission.WRITE_EXTERNAL_STORAGE – When you download a podcast, DroidCatcher stores it on the sdcard.
android.permission.WAKE_LOCK – This is required to temporarily prevent the device from going to sleep when downloading a podcast or playing audio in the background.
android.permission.RECEIVE_BOOT_COMPLETED – This one also raises some eyebrows. Some of DroidCatcher’s features require an alarm to be set and periodically run every so often, like checking for new episodes, etc. These alarms are removed when the device is powered off, and the only way to renew them is to re-register them with the OS when the device reboots. Remember, these are jobs that are designed to run quickly and exit, they are not long running background services.
android.permission.BLUETOOTH – DroidCatcher supports bluetooth devices and headsets. Couldn’t do it without using this permission.
android.permission.ACCESS_COARSE_LOCATION – This permission is used to leverage regional ads for the ad networks SDK. It uses only a crude approximation of a users location. It does not get a GPS fix. This allows the ad networks to do targeted advertising.
I hope this clears up some confusion about why DroidCatcher uses all these permissions!