Really don't understand why android, when you "deny" a permission that it break apps, instead of granting access to an empty (or maybe mostly empty) resource. E.g. contacts have one contact that this permission is denied.
Conversation
Replying to
It uses empty data or emulation for apps predating a given runtime permission existing. Once the permission exists, apps can check if they have it in order to request it and adjust their behavior based on not having it. It could still support empty data for modern apps though.
1
2
It's supported under the hood for most cases but isn't exposed in the user interface since they think it would be too complicated to have an additional state for permissions where if users forgot what they did, the app wouldn't work and they wouldn't easily be able to see why.
1
1
The intention was for apps to primarily use case-by-case requests for access to contacts, taking pictures, recording videos, storing / accessing files/directories, etc. which is all supported without permissions. Since apps could request bulk access instead, it's what they did.
With contacts, there's a whole intent-based API for the app to request case-by-case access with a nice user interface:
developer.android.com/guide/componen
Similar to how apps are meant to access files in the user's home directory or external drives, which is gradually becoming mandatory.
1
1
If every phone got 5-6 years of OS upgrades, apps could focus far more on modern OS versions which would help. Most of the issue is that developers can mislead users about how things work and are in a position to make unreasonable demands for access that are usually granted.
1
1
Show replies
Replying to
Yeah, a recent one I ran into was location. I granted access to location (while running), but it still hung, but that's because I had turned of location on my phone. Yes, it's a crappy app dev, but it's also a multi million download app, so they have the resources to be sane.

