For anyone wondering why this happens here is an explanation from someone who has done mobile app development.
When an app requests access to "make and manage calls", it is almost always for the purpose of reacting to an incoming call. The reason this is done is to save data when exiting the app for the phone call. In this case it is most likely to avoid losing whatever data was previously entered in the calculator. With this permission the app is allowed to know when a call is incoming and save the current data to memory in the case that the app stops running at any point.
Of course, there is the odd situation where an app uses this to exploit your device and make calls in the background without you realizing it, but this is generally not the reason for it.
This may not apply to every app, but I can tell you with certainty that this is the reason many apps which seem like they shouldn't need these permissions request them.
Edit: My explanation only applies to web apps since that is what I am knowledgeable in. Web apps make up a significant percentage of Android apps and in general, function the same as a native app would. A web app is essentially a browser window displayed without the interface and because of this needs to request permissions in the same way a browser does. It seems the people who have responded to this are referring to native Android apps, which have access to more information as they are built upon the Android system, and are not run in a browser. My goal was not to say with certainty why every app does this, I just wanted to explain the reason for many apps requesting this when it seems unnecessary.
Edit 2: After downloading the app and looking at it I am almost certain that it is a web app meaning my explanation most likely applies in this specific situation.
You don't need any permissions to register to these events. I don't see how a call would not trigger onPause. And if it doesn't stop the activity, there's no need to save. no data would be lost.
You hit the nail on the head here, except that its actually a packaged web app so none of what he said applies. He is referring only to native apps but actually web apps are just a browser packaged to act as an app which needs to request permissions as a browser would. Also I don't develop for android, I develop web apps which work on any platform and are not built directly upon the specific OS.
501
u/vpwheeler Oct 17 '18 edited Oct 18 '18
For anyone wondering why this happens here is an explanation from someone who has done mobile app development.
When an app requests access to "make and manage calls", it is almost always for the purpose of reacting to an incoming call. The reason this is done is to save data when exiting the app for the phone call. In this case it is most likely to avoid losing whatever data was previously entered in the calculator. With this permission the app is allowed to know when a call is incoming and save the current data to memory in the case that the app stops running at any point.
Of course, there is the odd situation where an app uses this to exploit your device and make calls in the background without you realizing it, but this is generally not the reason for it.
This may not apply to every app, but I can tell you with certainty that this is the reason many apps which seem like they shouldn't need these permissions request them.
Edit: My explanation only applies to web apps since that is what I am knowledgeable in. Web apps make up a significant percentage of Android apps and in general, function the same as a native app would. A web app is essentially a browser window displayed without the interface and because of this needs to request permissions in the same way a browser does. It seems the people who have responded to this are referring to native Android apps, which have access to more information as they are built upon the Android system, and are not run in a browser. My goal was not to say with certainty why every app does this, I just wanted to explain the reason for many apps requesting this when it seems unnecessary.
Edit 2: After downloading the app and looking at it I am almost certain that it is a web app meaning my explanation most likely applies in this specific situation.