0

Ich versuche, meine System/Handy-Helligkeit durch meine Anwendung zu ändern. Dafür muss ich um Erlaubnis fragen ("gefährliche Erlaubnis"). Ich bin nicht sicher, ob ich den richtigen Weg gemacht habe, aber das scheint nicht zu funktionieren, da es immer verweigert wird.Android Studio Gefährliche Erlaubnis

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); 
     } 
    } 
+0

Kein Fehler documentation geschrieben sichtbar, so far..did Sie 'WRITE_SETTINGS' Erlaubnis in manifest setzen? – Pzy64

+0

Ich habe meine manifest Berechtigungen zu der Frage hinzugefügt – Amar

+0

Wirklich, niemand kann mich auf die richtige Richtung zeigen? – Amar

Antwort

1

für gefährliche Erlaubnis zu fragen, wird anders behandelt als verwundbar Berechtigungen. Sie müssen Settings.System.canWrite(Context) Methode verwenden, um zu überprüfen, ob Sie das tun können. Und wenn nicht entsprechende Intent an das System senden startActivityForResult durch den Aufruf:

public boolean checkWriteSettingsPermission() { 
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { 
     return true; 
    } 
    if (!Settings.System.canWrite(getContext())) { 
     Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, 
      Uri.parse("package:" + getPackageName())); 
     startActivityForResult(intent, REQUEST_CODE); 
     return false; 
    } else { 
     return true; 
    } 
} 

Alles im

+0

Ich habe meine Frage mit der Absicht Erlaubnis bearbeitet. Ich bin jetzt aufstehen eine neue Absicht/Fenster mit dem Titel "Aviability". Aber nirgendwo wird mich das akzeptieren Erlaubnis, die App die Systembildschirmhelligkeit ändern zu lassen – Amar

+0

Ist die automatische Helligkeitseinstellung? Beantworten Sie diese Antwort: https://Stackoverflow.com/a/36001592/6507689 –

+0

Ja ok, aber das ist eine veraltete Antwort. Wie in der API-Ebene von meinem Anwendung ist 23 die Erlaubnisserklärung im Manifest funktioniert nicht? – Amar

Verwandte Themen