I'm trying to change my system/phone brightness through my application. For this I need to ask for permission ("dangerous permission"). I'm not quiet sure if I've done the correct way but this doesn't seem work as it always returns permission denied.
public void switches() {
if (systemBrightness) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.WRITE_SETTINGS},
1);
Toast.makeText(this, "Changed to system brightness: changing the “system brightness” is permanent", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Changed to screen brightness: ", Toast.LENGTH_SHORT).show();
}
}
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case 1: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
Toast.makeText(MainActivity.this, "Permission denied to read your External storage", Toast.LENGTH_SHORT).show();
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
//Mani fest
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
public void changeScreenBrightness(float brightness) {
mBrightness = brightness;
if (systemBrightness) {
if (!Settings.System.canWrite(this)) {
Intent i = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(i);
} else {
Settings.System.putInt(mContentResolver, Settings.System.SCREEN_BRIGHTNESS, (int) (mBrightness * 255)* preset);
}
} else {
WindowManager.LayoutParams mLayoutParams = mWindow.getAttributes();
mLayoutParams.screenBrightness = mBrightness * preset;
mWindow.setAttributes(mLayoutParams);
}
}