Junior
Welche Arten von Berechtigungen (Permissions) gibt es in Android?
sobes.tech KI
Antwort von AI
Unter Android gibt es verschiedene Arten von Berechtigungen, die die Zugriffsebenen der Anwendung auf geschützte Ressourcen und Benutzerdaten bestimmen.
- Normale Berechtigungen: Berechtigungen mit geringem Risiko. Sie werden automatisch bei der Installation der Anwendung gewährt und erfordern während der Ausführung keine ausdrückliche Zustimmung des Benutzers. Zum Beispiel Zugriff auf das Internet (
android.permission.INTERNET). - Gefährliche Berechtigungen: Berechtigungen mit hohem Risiko. Sie erfordern die ausdrückliche Zustimmung des Benutzers während der Ausführung der Anwendung. Der Zugriff auf diese Ressourcen kann die Privatsphäre oder den Betrieb des Geräts beeinträchtigen. Zum Beispiel Zugriff auf Kontakte (
android.permission.READ_CONTACTS), Kamera (android.permission.CAMERA). - Signaturberechtigungen: Berechtigungen, die Anwendungen gewährt werden können, die mit demselben Zertifikat signiert sind wie die Anwendung, die die Berechtigung festlegt. Sie werden verwendet, um den Zugriff zwischen Komponenten eines Systems oder einer Anwendungsgruppe zu steuern.
- Signatur- oder Systemberechtigungen: Diese Berechtigungen können entweder Anwendungen gewährt werden, die mit demselben Zertifikat signiert sind, oder Anwendungen, die sich im Systembereich befinden.
Außerdem kann man unterscheiden:
- Installationszeit-Berechtigungen: Berechtigungen, die während der Installation der Anwendung angefordert und gewährt werden. Dazu gehören
normaleundsignaturbezogeneBerechtigungen. - Laufzeit-Berechtigungen: Berechtigungen, die während der Ausführung auf Geräten mit Android 6.0 (API-Level 23) und höher angefordert werden. Dazu gehören
gefährlicheBerechtigungen. - Spezielle Berechtigungen: Eine besondere Klasse von Berechtigungen, die spezielle Schritte erfordern, um gewährt zu werden. Zum Beispiel Overlay über andere Fenster (
SYSTEM_ALERT_WINDOW) oder Änderungen an Systemeinstellungen (WRITE_SETTINGS). Sie gehören weder zunormalnoch zugefährlich.
Im Manifest der Anwendung werden alle erforderlichen Berechtigungen angefordert:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CAMERA" />
<application
...
>
...
</application>
</manifest>
Die Anforderung gefährlicher Berechtigungen erfolgt zur Laufzeit:
// Beispiel für die Anforderung der Berechtigung zum Lesen der Kontakte
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
arrayOf(Manifest.permission.READ_CONTACTS),
MY_PERMISSIONS_REQUEST_READ_CONTACTS)
} else {
// Berechtigung wurde bereits erteilt, Operation kann ausgeführt werden
}