Cadpage requests a lot of scary sounding permissions. Most of these are something Google has defined as dangerous, which means that Cadpage doesn't get to use them just because they are declared. Most, if not all, of them are only needed for some specific Cadpage configuration settings. When you try to turn this setting on, Cadpage has to prompt you to enable the setting. If you do not do so, we just reset the affected Cadpage setting and go on without that permission.
android.permision.READ_SMS
android.permision.RECEIVE_SMS
android.permission.RECEIVE_MMS
These allow us to intercept incoming SMS and MMS messages. There only required if the Cadpage message type setting specifies SMS and/or MMS messages. This is the default setting, which means Cadpage will prompt you to enable these the first time you start it up.
android.permission.SEND_SMS
This allows Cadpage to initiate an SMS message. This only required when you configure a alert response button to send a text message that reports your response status. This is seldom, if ever, done.
android.permission.CALL_PHONE
This allow Cadpage to initiate a phone call. This is only required when you configure an alert response button to initiate a phone call to report your response status. This used to be fairly common for departments that used IAmResponding as their message service. But I suspect it has fallen out of favor now that they have their own Android client app.
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_BACKGROUND_LOCATION
These give Cadpage permission to access your high precision location, even when Cadpage is running in the background. This is only required when you configure Cadpage to report your location to the message service so it use it to populate a map showing the location of all responders. Only Active911 supports this feature. Background access is required because you will usually ask Cadpage to pop a map showing you how to get to the incident scene. As soon as you do this, the mapping app becomes the foreground app and Cadpage is relegated to a backround status.
Cadpage will restrict this location tracking to 30 minutes from the time that the most recent alert was received. And while it is active, a permanent notification will be displayed which will contain a button that will turn location tracking off immediately.
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_MEDIA_AUDIO
These allow Cadpage to access stored audio files. They are only required if you Configure Cadpage to override the regular notification process with you own custom notification, playing your own custom alert sounds.
android.permission.READ_PHONE_STATE
This allows Cadpage to determine a phone call is currently in progress. It is only required if you have Cadpage configured to suppress alert notifications while a call is in progress.
android.permission.READ_PHONE_NUMBERS
This allows Cadpage to access your phone number. It is never required, but it can be helpful when we are trying to establish your identidy to see if you match an existing subscription authorization or are trying to register with a direct paging vendor.
The following permissions are not considered dangerous and are automatically granted to Cadpage without requesting your authorization.
android.permission.INTERNET
Allows Cadpage to access the global Internet. Used to communicate with our direct paging vendors.
android.permission.WAKE_LOCK
android.permission.DISABLE_KEYGUARD
Allows Cadpage to prevent the automatic screen lock or power off timeouts while you are using it.
android.permission.VIBRATE
Allows Cadpage to include phone vibration pattern in it's custom notification setup.
android.permission.ACCESS_NETWORK_STATE
This allows Cadpage to determine if you are connected to roaming or otherwise pay for usage network. In some, but not all, situation, Capage will check this before initiating any kind of Internet traffic.
android.permission.MODIFY_AUDIO_SETTINGS
This allows Cadpage to manipulate the audio volume levels, which it will do if you have it configured to override the mute and volume control settings.
com.android.vending.BILLING
This allows us to accept in-app purchases through the Android Market
android.permission.FOREGROUND_SERVICE
android.permisssion.FOREGROUND_SERVICE_LOCATION
These allow Cadpage to initiate a foreground service with not detectable triggering act. This is required by the crippled Google Play Store version of Cadpage because the real triggering event, receipt of a text alert message, was handled by the support app which passed to Cadpage.
android.permission.RECEIVE_BOOT_COMPLETED
Allows Cadpage to detect when your device is starting up. This is necessary because some upgrades to the Android system required Cadpage to request some user configuration changes.
android.permission.USE_FULL_SCREEN_INTENT
Allows Cadpage to display a full screen notification alert.
android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
Required to allow Cadpage to avoid some recent restrictions Google is imposing in the name of conserving battery consumption. I do not believe that anything we have done results in any meaningful increast in battery power consumption.
android.permission.CHANGE_NETWORK_STATE
android.permission.ACCESS_NOTIFICATION_POLICY
I have no idea why these were included. There was undoubtedly a good reason somewhere back over the years which may or may not still be valid. It seems safer to leave them in rather than remove them to see what breaks.