Tutorials  /  Security

Effektive Handhabung von Berechtigungen in Android: Ein praktischer Leitfaden

Ccentron Redaktion · September 2024 ·3 Min. Lesezeit ·Security, Tutorial

Erfahren Sie, wie Sie effektiv mit den neuen Laufzeitberechtigungen in Android-Anwendungen umgehen. Von der Unterscheidung zwischen gefährlichen und normalen Berechtigungen bis hin zur praktischen Implementierung bietet dieser Beitrag einen umfassenden Leitfaden.

Was sind Android-Laufzeitberechtigungen?

Ab Android 6.0 (SDK 23) werden Benutzer zur Laufzeit aufgefordert, bestimmte Berechtigungen zu gewähren, wenn sie benötigt werden. Eine wichtige Frage lautet: Werden ältere Apps auf Android Marshmallow laufen? Die Antwort lautet ja, wenn die targetSdkVersion auf 22 oder niedriger eingestellt ist. Es ist jedoch zu beachten, dass Benutzer unter Marshmallow gefährliche Berechtigungen in den Einstellungen der App widerrufen können. Das Aufrufen einer Funktion, die eine noch nicht gewährte Berechtigung erfordert, führt zu einer Ausnahme (java.lang.SecurityException), die die Anwendung möglicherweise zum Absturz bringt. Daher ist die Integration dieses neuen Berechtigungsmodells in unsere Anwendung entscheidend.

SEC

Passende Infrastruktur bei centron

Absicherung endet nicht beim Server: Cloud Firewalls filtern den Datenverkehr vor der VM – zentral verwaltet, ohne Aufpreis je Regel. Cloud Firewalls ansehen →

Gefährliche und normale Android-Berechtigungen

Android unterscheidet zwischen gefährlichen und normalen Berechtigungen. Beide Typen müssen im Manifest der Anwendung angegeben werden. Ab Android 6.0 werden nur gefährliche Berechtigungen zur Laufzeit überprüft, während normale Berechtigungen ignoriert werden. Ein Beispiel für eine normale Berechtigung ist android.permission.INTERNET. Gefährliche Berechtigungen werden in Kategorien gruppiert, um Benutzern zu helfen zu verstehen, worauf die Anwendung Zugriff erhält. Wenn ein Benutzer eine Berechtigung innerhalb einer Gruppe/Kategorie akzeptiert, akzeptiert er die gesamte Gruppe. Beispiele für gefährliche Berechtigungen sind android.permission.FINE_LOCATION und android.permission.COARSE_LOCATION. Das Gewähren einer der Standortberechtigungen gewährt alle.

Anfordern von Android-Laufzeitberechtigungen

Die Methode requestPermissions(String[] permissions, int requestCode) ist eine öffentliche Methode, die verwendet wird, um gefährliche Berechtigungen anzufordern. Wir können mehrere gefährliche Berechtigungen anfordern, indem wir ein String-Array von Berechtigungen übergeben. Hinweis: Android-Berechtigungen, die zu unterschiedlichen Gruppen gehören, zeigen dem Benutzer für jede Gruppe ein separates Dialogfeld an. Wenn sie zur selben Gruppe gehören, wird nur ein Dialog angezeigt. Die Ergebnisse der Anfragen werden an die Methode onRequestPermissionResult übergeben.

Beispiel:

Angenommen, wir möchten in unserer App auf die Kamera und den Standort zugreifen. Beide sind gefährliche Berechtigungen. Wir zeigen beim Start der Anwendung einen Dialog an, der den Zugriff auf diese Berechtigungen anfordert.

Code
String[] perms = {"android.permission.FINE_LOCATION", "android.permission.CAMERA"};
int permsRequestCode = 200; 
requestPermissions(perms, permsRequestCode);

@Override
public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults){
    switch(permsRequestCode){
        case 200:
            boolean locationAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED;
            boolean cameraAccepted = grantResults[1]==PackageManager.PERMISSION_GRANTED;
            break;
    }
}

Um zu verhindern, dass der Benutzer die Berechtigungen erneut akzeptieren muss, überprüfen wir erneut, ob die Berechtigungen trotz vorheriger Genehmigung vorhanden sind. Dafür muss die Methode checkSelfPermission(String perm) für jede Berechtigung aufgerufen werden.

Projektstruktur der Android-Laufzeitberechtigungen

Das Hauptlayout (content_main.xml) enthält die beiden Schaltflächen zum Überprüfen und Anfordern von Berechtigungen.

Mit einem effektiven Berechtigungsmanagement können Android-Entwickler sicherstellen, dass ihre Apps reibungslos funktionieren und gleichzeitig die Privatsphäre der Benutzer respektieren. Die ordnungsgemäße Implementierung von Laufzeitberechtigungen gemäß den Richtlinien von Google ist ein entscheidender Schritt für den Erfolg jeder modernen Android-Anwendung.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Security
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren