Conversation

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.
2
1
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
Replying to and
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
Replying to and
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.
2
2
Replying to and
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
Replying to and
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