Exceptions are not a solution - instead of the OS request "grant permission X to install the app" you get an app request "grant permission X to run the app".
This is the exact scenario that needs to be avoided - if the app developer wants something that I don't want to give, then you can't rely on cooperation from the app.
The whole point is that if a flaslight app wants to read my SMS, then I shouldn't have to choose between using that app and keeping my privacy; the OS is perfectly capable of keeping that app in an ignorant bliss thinking that it read my SMS and can turn on the light.
I got so frustrated with flashlight apps asking for Internet access to show ads and getting stuck when there is no Internet (typically the same time when I need a flashlight) that I wrote one and made it completely permission free:
I'll also note the TeslaLED app as another good one - it requires camera permissions to control the LED, plus screen drawing and sleep control - I suspect around the minimum that would be needed for a flashlight app.
This is what I've always used. LampA doesn't work on my Galaxy Nexus. I was hoping it would start up quicker because my biggest peeve with Tesla is that it takes time not only to open the app but there is a hundreds of ms delay in turning on the LED. I assume the complexities causing this are also what prevent LampA from working.
hey, this looks great, but it's not actually working on either on either of my nexus 5s, is that a known issue? There's no crash or anything, the flashlight just doesn't actually turn on.
because using system flashlight app is too edgy, huh? Why you need extra app for thing you have just build in Android ? Check your widgets for "Assistive light". Problem solved.
I'm in the "let them fake it" camp, but at the same time I think the exception throwing version could work, with a single tweak borrowed from iOS: Let the app ask for the permission once, and only once. That way repeatedly bugging the user for the permission won't work as a strategy.
The original article gives flashlight apps as an example - all of the top 10 flashlight apps had such features; so "downrating the app and moving on" wouldn't be productive at least the first 10 times.
This is the exact scenario that needs to be avoided - if the app developer wants something that I don't want to give, then you can't rely on cooperation from the app.
The whole point is that if a flaslight app wants to read my SMS, then I shouldn't have to choose between using that app and keeping my privacy; the OS is perfectly capable of keeping that app in an ignorant bliss thinking that it read my SMS and can turn on the light.