Android API 23 Mehrere Berechtigungen anfordern

Ich versuche, Berechtigungen für meine Launcher-Aktivität anzufordern. Für API <23 funktioniert es perfekt. Wenn ich die App jedoch auf einem Gerät teste, auf dem API 23 ausgeführt wird, heißt es: "PostPaid Balance wurde gestoppt." Ich drücke auf die Schaltfläche "App schließen", die App wird geschlossen und bittet sofort um eine Erlaubnis. Ich drücke auf "Akzeptieren". Dann tippe ich auf das App-Symbol, um es erneut zu öffnen. Das Gleiche passiert, nur dass jetzt die nächste Erlaubnis abgefragt wird. Dann tippe ich auf das App-Icon und diesmal wird es korrekt ausgeführt. Anscheinend werden nacheinander Berechtigungen angefordert. Irgendwelche Ideen, wie man das macht?

// Below code is implemented on onCreate() of the launcher activity.
 if (Build.VERSION.SDK_INT < 23) {
        ActivityCompat.checkSelfPermission(this.getApplicationContext(), "android.permission.READ_SMS");
        ActivityCompat.checkSelfPermission(this.getApplicationContext(), Manifest.permission.READ_CALL_LOG);
        ActivityCompat.checkSelfPermission(this.getApplicationContext(), Manifest.permission.READ_PHONE_STATE);

        if ((ActivityCompat.checkSelfPermission(this, "android.permission.READ_SMS") != PackageManager.PERMISSION_GRANTED)) {
            requestSmsPermission();
        }

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            requestPhoneStatePermission();
        }

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) {
            requestCallLogPermission();
        }
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if ((this.checkSelfPermission("android.permission.READ_SMS") != PackageManager.PERMISSION_GRANTED) &&
                (this.checkSelfPermission(Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) &&
                (this.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED)) {
            this.requestPermissions(new String[]{"android.permission.READ_SMS", Manifest.permission_group.PHONE}, REQUEST_SMS);

        }
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage