4

I need to turn off the capacitive buttons light in my app.

I found this popular implementation

Settings.System.putInt(getContentResolver(), "button_key_light", 0);

Sadly, I get this exception on more recent Samsung devices

 java.lang.IllegalArgumentException: You cannot keep your settings in the secure settings.

Is there a known way to implement something like this?

I have found this app and it seems to work fine with even the most recent devices, so I tried to decompile it and could only find the same line of code I mentioned above, which I really don't understand. Maybe the decompilation process changed a saved String in the system to "button_key_light"?

Maybe it's because of more recent build tools?

So does anyone have a known way of getting it to work? Or at least an explanation for why my current code doesn't work?

Rosenpin
  • 862
  • 2
  • 11
  • 40

1 Answers1

0

OK I figured this out.

It seems like you have to target sdk version 22 or lower to write system settings that are not predefined.

So in order to run

Settings.System.putInt(getContentResolver(), "button_key_light", 0);

You have to add this to your app build.gradle

defaultConfig {
    ...    
    targetSdkVersion 22
    ...
}
Rosenpin
  • 862
  • 2
  • 11
  • 40