Wie bereits im Workflow zur Verwendung von Berechtigungen, wenn deine App eine App anfordert Berechtigungen, musst du diese in der Manifestdatei deiner App deklarieren. Diese Deklarationen helfen App-Shops und Nutzern, die verschiedenen Berechtigungen zu verstehen die Ihre App anfordern könnte.
Wie Sie eine Berechtigung anfordern, hängt von der Art der Berechtigung:
- Wenn die Berechtigung eine Installationszeit ist Berechtigung, wie z. B. eine normale oder eine Signaturberechtigung, wird die Berechtigung automatisch unter die Installationszeit.
- Wenn die Berechtigung eine Laufzeit ist Berechtigung oder spezielle Berechtigung und ob deine App auf einem Gerät mit Android 6.0 (API-Level 23) oder höher installiert ist, Laufzeitberechtigung oder spezielle Berechtigung anfordern selbst.
Erklärung zum App-Manifest hinzufügen
Um eine Berechtigung zu erklären, die von deiner App möglicherweise angefordert wird, füge die entsprechenden
<uses-permission>
Element in
in der Manifest-Datei Ihrer App. Beispiel: Eine App, die auf die Kamera zugreifen muss,
enthält diese Zeile in AndroidManifest.xml
:
<manifest ...> <uses-permission android:name="android.permission.CAMERA"/> <application ...> ... </application> </manifest>
Hardware als optional deklarieren
Einige Berechtigungen, z. B.
CAMERA
, lassen Sie Ihre App
Zugriff auf Hardwarekomponenten, die nur auf einigen Android-Geräten vorhanden sind. Wenn Ihre App
deklariert, dass eines dieser Hardware-bezogenen
Berechtigungen
Prüfen, ob deine App auch auf Geräten ohne diese Funktion ausgeführt werden kann
Hardware. In den meisten Fällen ist die Hardware optional. Daher ist es besser, die
als optional festlegen, indem Sie android:required
auf false
in Ihrem
<uses-feature>
-Deklaration als
wie im folgenden Code-Snippet einer AndroidManifest.xml
-Datei dargestellt:
<manifest ...> <application> ... </application> <uses-feature android:name="android.hardware.camera" android:required="false" /> <manifest>
Hardwareverfügbarkeit ermitteln
Wenn du Hardware als optional angibst, kann deine App auf einem
Gerät ohne diese Hardware. Um zu prüfen, ob ein Gerät eine bestimmte
verwendet den
hasSystemFeature()
an, wie im folgenden Code-Snippet gezeigt. Wenn die Hardware nicht verfügbar ist,
diese Funktion in Ihrer App ordnungsgemäß deaktivieren.
Kotlin
// Check whether your app is running on a device that has a front-facing camera. if (applicationContext.packageManager.hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { // Continue with the part of your app's workflow that requires a // front-facing camera. } else { // Gracefully degrade your app experience. }
Java
// Check whether your app is running on a device that has a front-facing camera. if (getApplicationContext().getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { // Continue with the part of your app's workflow that requires a // front-facing camera. } else { // Gracefully degrade your app experience. }
Deklarieren Sie Berechtigungen nach API-Ebene
Die Deklaration einer Berechtigung nur auf Geräten, die Laufzeitberechtigungen unterstützen,
Geräte mit Android 6.0 (API-Level 23) oder höher – einschließlich der
<uses-permission-sdk-23>
anstelle des
<uses-permission>
-Element.
Wenn Sie eines dieser Elemente verwenden, können Sie das Attribut maxSdkVersion
um anzuzeigen, dass Geräte mit einer höheren Android-Version
für den angegebenen Wert
keine bestimmte Berechtigung erforderlich ist. So können Sie
Unnötige Berechtigungen entfernen und gleichzeitig Kompatibilität sicherstellen
für ältere Geräte.
Ihre App kann beispielsweise Medieninhalte wie Fotos anzeigen
oder Videos, die der Nutzer in Ihrer App erstellt hat. In dieser Situation
müssen Sie das
READ_EXTERNAL_STORAGE
auf Geräten, die
Android 10 (API-Level 29) oder höher ausführen,
Android 10 oder höher. Aus Gründen der Kompatibilität mit älteren Geräten
können Sie die Berechtigung READ_EXTERNAL_STORAGE
deklarieren und
android:maxSdkVersion
auf 28.