<uses-feature>

Google Play verwendet die <uses-feature> Elemente, die in deinem App-Manifest deklariert sind, um deine App nach Geräten zu filtern die die Anforderungen an Hardware- und Softwarefunktionen nicht erfüllen.

Wenn Sie die Funktionen angeben, die Ihre Anwendung benötigt, können Sie es Google Play ermöglichen, Ihre App nur Nutzern zu präsentieren, deren Geräte die Funktionsanforderungen der Anwendung erfüllen, für alle Nutzenden.

Wichtige Informationen dazu, Google Play verwendet Funktionen als Grundlage für die Filterung (siehe Abschnitt Google Play und funktionsbasiertes Filtern).

Syntax:
<uses-feature
  android:name="string"
  android:required=["true" | "false"]
  android:glEsVersion="integer" />
enthalten in:
<manifest>
description:

eine einzelne Hardware- oder Softwarefunktion angibt, die vom .

Mit einer <uses-feature>-Deklaration möchten wir Sie darüber informieren, eine externe Stelle der Hardware- und Softwarefunktionen, von der die Anwendung abhängig ist. Das Element bietet ein required-Attribut, das können Sie angeben, ob Ihre Anwendung ohne die deklarierte Funktion oder die Funktion bevorzugt, kann aber funktionieren ohne sie.

Da die Funktionsunterstützung je nach Android-Gerät variieren kann, Das <uses-feature>-Element spielt eine wichtige Rolle dabei, werden die verwendeten gerätevariablen Funktionen beschrieben.

Die verfügbaren Funktionen, die von Ihrer Anwendung deklariert werden die Funktionskonstanten, die durch Android PackageManager zur Verfügung gestellt werden. Die Featurekonstanten sind in der Abschnitt zur Funktionsreferenz in in diesem Dokument.

Sie müssen jedes Element in einem separaten <uses-feature> angeben. -Element enthält. Wenn Ihre Anwendung also mehrere Funktionen benötigt, deklariert sie Mehrere <uses-feature>-Elemente. Beispiel: Eine App für die sowohl Bluetooth- als auch Kamerafunktionen im Gerät deklariert sind. diese beiden Elemente:

<uses-feature android:name="android.hardware.bluetooth" android:required="true" />
<uses-feature android:name="android.hardware.camera.any" android:required="true" />

Im Allgemeinen erklären Sie <uses-feature>-Elemente für alle Elemente, die die für die Anwendung erforderlich sind.

Die deklarierten <uses-feature>-Elemente dienen nur zu Informationszwecken. die das Android-System selbst nicht auf Unterstützung von übereinstimmenden Funktionen prüft, auf dem Gerät, bevor Sie eine Anwendung installieren.

Andere Dienste, wie z. B. Google Play, und Apps können die Leistung Ihrer App <uses-feature>-Deklarationen im Rahmen der Verarbeitung oder Interaktion mit Ihrer Anwendung. Aus diesem Grund ist es sehr wichtig, dass Sie alle die von Ihrer Anwendung verwendeten Funktionen.

Für einige Funktionen gibt es möglicherweise ein bestimmtes Attribut, mit dem Sie eine Version der Funktion, wie z. B. die verwendete Version von Open GL (deklariert mit glEsVersion) Andere Funktionen, die entweder für ein Gerät wie z. B. eine Kamera existieren, werden mithilfe der Methode name-Attribut.

Obwohl das <uses-feature>-Element nur für mit API-Level 4 oder höher müssen diese Elemente für alle selbst wenn die minSdkVersion 3 oder niedriger ist. Geräte, auf denen ältere Versionen der Plattform ausgeführt werden, werden ignoriert. das Element.

Hinweis:Denken Sie beim Deklarieren einer Funktion daran, dass Sie ggf. auch Berechtigungen anfordern müssen. Zum Beispiel müssen Sie CAMERA anfordern bevor Ihre Anwendung auf die Kamera-API zugreifen kann. Anfrage des gewährt Ihrer Anwendung Zugriff auf die entsprechende Hardware und Software. Indem du die von deiner App verwendeten Funktionen deklarierst, Gerätekompatibilität.

Attribute:
android:name
Gibt eine einzelne Hardware- oder Softwarefunktion an, die von der Anwendung als eine Beschreibungszeichenfolge. Gültige Attributwerte sind unter Hardware-Funktionen und Software Features. Bei diesen Attributwerten wird zwischen Groß- und Kleinschreibung unterschieden.
android:required
Boolescher Wert, der angibt, ob die Anwendung die Funktion benötigt in android:name angegeben.
  • Wenn Sie android:required="true" für ein Feature deklarieren, bedeutet das, die Anwendung nicht funktioniert oder nicht ausgeführt werden soll, wenn das angegebene Feature nicht im .
  • Wenn Sie android:required="false" für ein Feature deklarieren, bedeutet das, Die Anwendung verwendet die Funktion, sofern vorhanden auf an das Gerät angeschlossen ist, aber dafür ausgelegt ist, ohne die angegebenen , falls nötig.

Der Standardwert für android:required ist "true".

android:glEsVersion
Die für die Anwendung erforderliche OpenGL ES-Version. Je höher die 16 Bit, die Major-Zahl und die unteren 16 Bits die Minor-Zahl. Für Um OpenGL ES Version 2.0 anzugeben, legen Sie den Wert wie folgt fest: Um „0x00020000“ anzugeben, legen Sie den Wert auf „0x00030002“ fest, um OpenGL ES 3.2 anzugeben.

Eine Anwendung gibt höchstens eine android:glEsVersion an in seinem Manifest. Wird mehr als eines angegeben, android:glEsVersion mit dem numerisch höchsten Wert wird verwendet und alle anderen Werte werden ignoriert.

Wenn in einer Anwendung kein android:glEsVersion angegeben ist wird angenommen, dass die Anwendung nur OpenGL ES 1.0 erfordert. das von allen Android-Geräten unterstützt wird.

Eine App kann davon ausgehen, dass eine Plattform, die ein bestimmtes OpenGL ES unterstützt, -Version unterstützt sie auch alle numerisch niedrigeren OpenGL ES-Versionen. Daher ist für für eine Anwendung, die sowohl OpenGL ES 1.0 als auch OpenGL ES 2.0 erfordert, dass es OpenGL ES 2.0 erfordert.

Bei Anwendungen, die mit verschiedenen OpenGL ES-Versionen funktionieren, Sie geben nur die numerisch niedrigste Version von OpenGL ES an, die erforderlich ist. Es kann während der Laufzeit prüfen, ob eine höhere Ebene von OpenGL ES verfügbar ist.

Weitere Informationen zur Verwendung von OpenGL ES und zum Prüfen des unterstützten OpenGL ES Version zur Laufzeit erhalten Sie in der OpenGL ES API-Leitfaden.

eingeführt in:
API-Level 4
Siehe auch:

Google Play und funktionsbasiertes Filtern

Google Play filtert die für Nutzer sichtbaren Apps, sodass können Nutzer nur die Apps anzeigen und herunterladen, die kompatibel mit auf ihrem Gerät. Anwendungen werden unter anderem nach Funktionen gefiltert. Kompatibilität.

Um die Funktionskompatibilität einer Anwendung mit denen eines bestimmten Nutzers zu ermitteln vergleicht Google Play Folgendes:

  • Für die Anwendung erforderliche Funktionen, wie in <uses-feature>-Elemente im Manifest der App.
  • Funktionen, die wie angegeben auf dem Gerät in Hardware oder Software verfügbar sind mit schreibgeschützten Systemeigenschaften.

Um Funktionen genau zu vergleichen, bietet der Android Package Manager bietet einen gemeinsamen Satz von Funktionskonstanten, die sowohl in Anwendungen als auch auf Geräten um Funktionsanforderungen und Support zu deklarieren. Die verfügbaren Funktionskonstanten sind im Abschnitt Funktionsreferenz aufgeführt. in diesem Dokument und in der Kursdokumentation PackageManager

Wenn der Nutzer Google Play startet, fragt die App die Paketmanager finden Sie eine Liste der auf dem Gerät verfügbaren Funktionen. Rufen Sie dazu getSystemAvailableFeatures() Die Die Store-App übergibt dann die Liste der Funktionen an Google Play. wenn Sie die Sitzung für den Nutzer einrichten.

Jedes Mal, wenn Sie eine App in die Google Play Console hochladen, Google Play scannt die Manifestdatei der App. Sucht nach <uses-feature>-Elemente und bewertet sie in Kombination mit anderen Elementen, in einigen Fällen wie <uses-sdk> und <uses-permission>-Elemente. Nach der Einrichtung der alle erforderlichen Funktionen der Anwendung enthält, wird diese Liste intern als Mit dem App-APK und der App verknüpfte Metadaten Version.

Wenn ein Nutzer mit Google Play nach Apps sucht vergleicht der Dienst die von der jeweiligen Anwendung benötigten Funktionen mit die auf dem Gerät des Nutzers verfügbaren Funktionen anzuzeigen. Wenn alle erforderlichen Funktionen vorhanden sind, können Nutzer bei Google Play und lade sie ggf. herunter.

Wenn eine erforderliche Funktion nicht vom Gerät unterstützt wird, filtert Google Play die App so, sichtbar für den Nutzer oder zum Download zur Verfügung.

Weil die Funktionen, die Sie in <uses-feature> deklarieren, direkt darauf auswirken, wie Google Play eure App filtert, Es ist wichtig zu verstehen, wie Google Play das Manifest der App bewertet und legt die erforderlichen Funktionen fest. In den folgenden Abschnitten finden Sie Informationen.

Auf der Grundlage explizit deklarierter Funktionen filtern

Eine explizit deklarierte Funktion ist eine Funktion, die Ihre Anwendung in einem <uses-feature>-Element. Die Deklaration der Funktion kann Folgendes enthalten: ein android:required=["true" | "false"]-Attribut, wenn Sie Kompilierung mit API Level 5 oder höher.

Damit können Sie angeben, Anwendung erfordert die Funktion und funktioniert nicht ordnungsgemäß, wenn es ("true") oder verwendet die Funktion falls verfügbar, aber für den Betrieb ohne dieses Tool konzipiert ("false").

Google Play verarbeitet explizit deklarierte Funktionen so:

  • Wenn eine Funktion ausdrücklich als erforderlich erklärt wird, wie im Folgenden zum Beispiel fügt Google Play der Liste der für die Anwendung erforderlichen Funktionen hinzu. Dann filtert die Anwendung von Nutzern auf Geräten, die diese Funktion nicht bieten.
    <uses-feature android:name="android.hardware.camera.any" android:required="true" />
    
  • Wenn eine Funktion ausdrücklich als nicht erforderlich erklärt wird, wie in den Im folgenden Beispiel wird Google Google Play fügt die Funktion nicht zur Liste der erforderlichen Funktionen hinzu. Für Daher wird eine ausdrücklich erklärte nicht erforderliche Funktion nie berücksichtigt, wenn zum Filtern der Anwendung. Auch wenn das Gerät die angegebene betrachtet Google Play die App trotzdem als kompatibel mit dem und dem Nutzer angezeigt wird, sofern keine anderen Filterregeln gelten.
    <uses-feature android:name="android.hardware.camera" android:required="false" />
    
  • Wenn eine Funktion explizit deklariert wird, jedoch ohne android:required-Attribut enthält, geht Google Play davon aus, ist erforderlich und richtet die Filterung dafür ein.

Wenn Ihre App für Android 1.6 und niedriger entwickelt wurde, Das Attribut android:required ist in der und Google Play geht davon aus, <uses-feature>-Deklarationen sind erforderlich.

Hinweis:Wenn Sie eine Funktion explizit und android:required="false"-Attribut enthält, können Sie effektiv alle Filter bei Google Play für die angegebene Funktion deaktivieren.

Nach impliziten Merkmalen filtern

Eine implizite Funktion ist eine Funktion, die eine Anwendung benötigt, um ordnungsgemäß funktionieren, die jedoch nicht in einem <uses-feature>-Element in der Manifestdatei. Streng gesprochen, es ist am besten, wenn in jeder Anwendung immer alle Funktionen angegeben werden, verwendet oder erfordert und das Fehlen einer Deklaration für eine Funktion, die von einem Anwendung als Fehler angesehen werden.

Als Absicherung für Nutzer und Nutzer sucht Google Play in jeder App nach impliziten Funktionen setzt Filter für diese Funktionen ein, genau wie bei expliziten deklarierten Funktionen.

Eine Anwendung kann eine Funktion erfordern, aber aus folgenden Gründen nicht deklariert werden:

  • Die App wurde mit einer älteren Version der Android-Bibliothek kompiliert. (Android 1.5 oder niedriger), bei denen das <uses-feature>-Element nicht verfügbar.
  • Der Entwickler geht fälschlicherweise davon aus, dass die Funktion auf allen Geräte und eine Erklärung ist nicht erforderlich.
  • Der Entwickler lässt die Funktionsdeklaration versehentlich weg.
  • Der Entwickler erklärt die Funktion explizit, die Erklärung ist aber nicht gültig sein. Beispiel: Ein Rechtschreibfehler im <uses-feature> Elementname oder einen nicht erkannten Stringwert für die Das Attribut android:name macht die Funktionsdeklaration ungültig.

Aus diesem Grund versucht Google Play, implizierten Funktionsanforderungen der Anwendung durch die Untersuchung anderer Elemente in der Manifest-Datei deklariert, insbesondere <uses-permission>-Elemente.

Wenn eine App hardwarebezogene Berechtigungen anfordert, dass die Anwendung die zugrunde liegenden Hardwarefunktionen und und benötigt daher diese Funktionen, auch wenn entsprechende <uses-feature>-Deklarationen. Für solche fügt Google Play die zugrunde liegenden Hardwarefunktionen zum Metadaten, die für die Anwendung gespeichert werden, und richtet Filter für sie ein.

Wenn eine Anwendung beispielsweise die Berechtigung CAMERA anfordert, Google Play geht davon aus, dass für die App auch wenn die App kein <uses-feature>-Element für android.hardware.camera Daher filtert Google Play Geräte, die keine Rückkamera haben.

Wenn Sie nicht möchten, dass Google Play nach bestimmten impliziten Funktion explizit in einem <uses-feature> deklarieren -Element und fügen Sie das android:required="false"-Attribut hinzu. Für Um beispielsweise die Filterung impliziert mit der Berechtigung CAMERA zu deaktivieren, die folgenden Funktionen deklarieren:

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

Achtung:Berechtigungen, die Sie in <uses-permission>-Elemente können sich direkt auf die Google Play filtert deine App. Die Im Abschnitt Berechtigungen, die Funktionsanforderungen voraussetzen, werden die vollständige Berechtigungen, die Funktionsanforderungen voraussetzen und somit auslösen Filterung.

Besondere Handhabung der Bluetooth-Funktion

Google Play wendet etwas andere Regeln an als im vorherigen Beispiel beschrieben, wenn die Filterung für Bluetooth.

Wenn eine App eine Bluetooth-Berechtigung in einem <uses-permission>-Element, wird aber nicht explizit deklariert die Bluetooth-Funktion in einem <uses-feature>-Element, Google Google Play prüft die Versionen der Android-Plattform, auf der die App installiert ist. ausgeführt werden soll, wie im Element <uses-sdk> angegeben.

Wie in der folgenden Tabelle dargestellt, aktiviert Google Play die Filterung für Bluetooth-Funktion nur, wenn die App die niedrigste oder gezieltere als Android 2.0 (API-Level 5) oder höher. Beachten Sie jedoch, dass Google Play wendet die normalen Filterregeln an, wenn die App deklariert die Bluetooth-Funktion in einem <uses-feature>-Element.

Tabelle 1 So bestimmt Google Play Anforderungen an Bluetooth-Funktionen für Apps, die Bluetooth anfordert ohne die Bluetooth-Funktion in einem <uses-feature>-Element.

Wenn minSdkVersion ... und targetSdkVersion ist Ergebnis
< = 4 oder <uses-sdk> ist nicht deklariert <= 4 Google Play filtert Apps nicht auf Geräten heraus. basierend auf ihrer gemeldeten Unterstützung für android.hardware.bluetooth .
<= 4 ≥ 5 Google Play filtert die App auf allen Geräten, die die Funktion android.hardware.bluetooth nicht unterstützen, einschließlich ältere Releases).
≥ 5 ≥ 5

Die folgenden Beispiele veranschaulichen die verschiedenen Filtereffekte, je nachdem, Google Play übernimmt die Bluetooth-Funktion.

<ph type="x-smartling-placeholder">
</ph> Im ersten Beispiel: eine Anwendung, die für die Ausführung auf älteren API-Ebenen entwickelt wurde. deklariert eine Bluetooth-Berechtigung, ohne die Bluetooth-Funktion in einem <uses-feature>-Element.
Ergebnis:Google Play filtert die App auf keinem Gerät heraus.
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" />
    ...
</manifest>
<ph type="x-smartling-placeholder">
</ph> Im zweiten Beispiel deklariert dieselbe Anwendung auch API-Level von "5".
Ergebnis:Google Play geht jetzt davon aus, dass die Funktion erforderlich ist und filtert die App nach allen Geräten, die keine Bluetooth-Unterstützung bieten, darunter auch Geräte mit älteren Versionen der Plattform.
<manifest ...>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>
<ph type="x-smartling-placeholder">
</ph> Hier deklariert dieselbe App jetzt speziell die Bluetooth-Funktion.
Ergebnis: Identisch mit dem vorherigen Beispiel: Es wird eine Filterung angewendet.
<manifest ...>
    <uses-feature android:name="android.hardware.bluetooth" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>
<ph type="x-smartling-placeholder">
</ph> Im folgenden Fall fügt dieselbe Anwendung ein android:required="false"-Attribut.
Ergebnis:Google Play deaktiviert die Filterung auf Grundlage von Bluetooth werden auf allen Geräten unterstützt.
<manifest ...>
    <uses-feature android:name="android.hardware.bluetooth" android:required="false" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" />
    ...
</manifest>

Für Ihre Anwendung erforderliche Funktionen testen

Du kannst das aapt2-Tool verwenden, das im Android SDK enthalten ist, um Bestimmen Sie, wie Google Play Ihre App anhand der deklarierten Funktionen und Berechtigungen. Führen Sie dazu aapt2 mit dem Befehl dump badging aus. Dies führt dazu, dass aapt2 Ihren App-Manifests aus und wenden dieselben Regeln an, die auch Google Play für die Funktionen ermitteln, die Ihre Anwendung benötigt.

So verwenden Sie das Tool:

  1. Erstelle und exportiere deine App als nicht signiertes APK. Wenn Sie in Android Studio entwickeln, erstellen Sie Ihre App so mit Gradle: <ph type="x-smartling-placeholder">
      </ph>
    1. Öffnen Sie das Projekt und wählen Sie Ausführen > Konfigurationen bearbeiten.
    2. Klicken Sie auf das Pluszeichen oben links im Menü Run/Debug Konfigurationen.
    3. Wählen Sie Gradle aus.
    4. Geben Sie „Nicht signiertes APK“ ein. unter Name.
    5. Wählen Sie Ihr Modul im Abschnitt Gradle-Projekt aus.
    6. Geben Sie „Zusammenstellen“ ein in Tasks.
    7. Wählen Sie OK aus, um die neue Konfiguration abzuschließen.
    8. Achten Sie darauf, dass die Ausführungskonfiguration Nicht signiertes APK ausgewählt ist in der Symbolleiste und wählen Sie dann Ausführen > Führen Sie „Nicht signiertes APK“ aus.
    Sie finden Ihr nicht signiertes APK in der <ProjectName>/app/build/outputs/apk/-Verzeichnis.
  2. Suchen Sie das aapt2-Tool, falls es sich noch nicht in Ihrem PATH befindet. Wenn Sie SDK Tools Version 8 oder höher verwenden, finden Sie aapt2 in der <SDK>/build-tools/<tools version number> -Verzeichnis.

    Hinweis: Sie müssen die Version von aapt2, die für die neueste verfügbare Build-Tools-Komponente bereitgestellt wird. Wenn Wenn Sie nicht über die neueste Build-Tools-Komponente verfügen, laden Sie sie mit dem Android SDK Manager herunter.

  3. Führen Sie aapt2 mit dieser Syntax aus:
$ aapt2 dump badging <path_to_exported_.apk>

Hier ist ein Beispiel für die Befehlsausgabe für das zweite gezeigte Bluetooth-Beispiel: zuvor:

$ ./aapt2 dump badging BTExample.apk
package: name='com.example.android.btexample' versionCode='' versionName=''
uses-permission:'android.permission.BLUETOOTH_ADMIN'
uses-feature:'android.hardware.bluetooth'
sdkVersion:'3'
targetSdkVersion:'5'
application: label='BT Example' icon='res/drawable/app_bt_ex.png'
launchable activity name='com.example.android.btexample.MyActivity'label='' icon=''
uses-feature:'android.hardware.touchscreen'
main
supports-screens: 'small' 'normal' 'large'
locales: '--_--'
densities: '160'

Funktionsreferenz

Die folgenden Abschnitte enthalten Referenzinformationen zu Hardwarefunktionen, Softwarefunktionen und Berechtigungssätze, die eine bestimmte Funktion implizieren Anforderungen.

Hardwarefunktionen

In diesem Abschnitt werden die Hardwarefunktionen beschrieben, die von den neuesten Plattformrelease. Um darauf hinzuweisen, dass Ihre App Hardware verwendet oder erfordert Funktion, deklarieren Sie den entsprechenden Wert, beginnend mit "android.hardware" in einem android:name-Attribut. Verwenden Sie jedes Mal, wenn Sie eine Hardwarefunktion deklarieren, eine separate <uses-feature>-Element.

Funktionen der Audiohardware

android.hardware.audio.low_latency
Die App nutzt die Audiopipeline mit niedriger Latenz des Geräts, um Verzögerungen und bei der Verarbeitung der Ein- und Ausgabe von Ton.
android.hardware.audio.output
Die App überträgt Geräusche über die Lautsprecher, den Audioanschluss des Geräts und Bluetooth Streamingfunktionen oder einen ähnlichen Mechanismus.
android.hardware.audio.pro
Die App nutzt die High-End-Audiofunktion und -leistung des Geräts Funktionen.
android.hardware.microphone
Die App nimmt Audio über das Mikrofon des Geräts auf.

Bluetooth-Hardwarefunktionen

android.hardware.bluetooth
Die App verwendet die Bluetooth-Funktionen des Geräts, um in der Regel mit andere Bluetooth-fähige Geräte.
android.hardware.bluetooth_le
Die App verwendet die Bluetooth Low Energy-Funkfunktionen des Geräts.

Funktionen der Kamerahardware

Hinweis:Damit Ihre App nicht unnötig gefiltert wird, Google Play, füge android:required="false" zu jeder Kamerafunktion hinzu ohne dass Ihre App funktioniert. Andernfalls geht Google Play davon aus, erforderlich ist, und verhindert, dass Geräte, die diese Funktion nicht unterstützen, auf Ihren

Unterstützung für große Bildschirme

Einige Geräte mit großen Bildschirmen unterstützen nicht alle Kamerafunktionen. Chromebooks haben normalerweise keine Rückkameras, keinen Autofokus und keinen Blitz. Aber Chromebooks haben Frontkameras (für den Nutzer sichtbare) und sind oft mit externen Kameras.

Um grundlegende Kamera-Unterstützung zu bieten und deine App für möglichst viele Nutzer verfügbar zu machen wie möglich, fügen Sie Ihrer App die folgenden Einstellungen für Kamerafunktionen hinzu Manifest:

<uses-feature android:name="android.hardware.camera.any" android:required="false" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />

Passe die Funktionseinstellungen an die Anwendungsfälle deiner App an. Um aber dafür zu sorgen, für möglichst viele Geräte verfügbar ist, sollte immer die required-Attribut, das explizit angibt, ob ein Element ein ein Muss.

Funktionsliste
android.hardware.camera.any

Die App verwendet eine der Kameras des Geräts oder eine externe Kamera, die mit auf dem Gerät. Diese Funktion statt android.hardware.camera verwenden oder android.hardware.camera.front, wenn die App nicht muss die Kamera rückwärts (weltweit) oder nach vorne (zum Nutzer) gerichtet sein, .

Die Berechtigung „CAMERA“ bedeutet, dass deine App auch android.hardware.camera. Rückkamera ist erforderlich Feature, es sei denn, android.hardware.camera wird deklariert mit android:required="false".

android.hardware.camera

Die App verwendet die Rückkamera des Geräts, also die nach außen gerichtete Kamera.

Achtung:Bei Geräten wie Chromebooks mit nur eine Frontkamera (für den Nutzer sichtbar) unterstützt diese Funktion nicht. Verwenden Sie android.hardware.camera.any, wenn deine App jede beliebige Kamera verwenden kann, egal in welche Richtung die Kamera zeigt.

Hinweis: Das CAMERA impliziert, dass eine Rückkamera erforderlich ist. Um sicherzustellen, bei Google Play richtig filtern, wenn Ihr App-Manifest das Berechtigung CAMERA, gibst du explizit an, dass deine App die Funktion camera und geben an, ob sie erforderlich ist, z. B.:
<uses-feature android:name="android.hardware.camera" android:required="false" />

android.hardware.camera.front

Die App verwendet die Frontkamera (für den Nutzer sichtbar) des Geräts.

Die Berechtigung „CAMERA“ bedeutet, dass deine App auch android.hardware.camera. Rückkamera ist erforderlich Feature, es sei denn, android.hardware.camera wird deklariert mit android:required="false".

Achtung:Wenn in Ihrer App android.hardware.camera.front, gibt aber nicht explizit an, android.hardware.camera mit android.required="false", Geräte ohne Rückseite Kamera (wie Chromebooks) werden von Google Play gefiltert. Wenn Ihre App Geräte mit Frontkameras verwenden, deklarieren Sie android.hardware.camera mit android.required="false", um unnötige Filterung zu vermeiden.

android.hardware.camera.external

Die App kommuniziert mit einer externen Kamera, mit der der Nutzer verbunden ist. . Diese Funktion garantiert nicht, dass eine externe Kamera verfügbar ist für Ihre App.

Die Berechtigung „CAMERA“ bedeutet, dass deine App auch android.hardware.camera. Rückkamera ist erforderlich Feature, es sei denn, android.hardware.camera wird deklariert mit android:required="false".

android.hardware.camera.autofocus

Die App verwendet die Autofokusfunktion, die von der Kamera des Geräts unterstützt wird.

Hinweis: Das CAMERA impliziert, dass der Autofokus eine erforderliche Funktion ist. Um eine ordnungsgemäße Filterung bei Google Play, wenn dein App-Manifest das CAMERA, explizit anzugeben, dass deine App die Autofokus-Funktion und geben an, ob sie erforderlich ist oder nicht, Beispiel:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

android.hardware.camera.flash

Die App verwendet die Blitzfunktion, die von der Kamera des Geräts unterstützt wird.

android.hardware.camera.capability.manual_post_processing

Die App verwendet die MANUAL_POST_PROCESSING-Funktion, die unterstützt wird von die Kamera des Geräts.

Mit dieser Funktion kann deine App den automatischen Weißabgleich der Kamera überschreiben Funktionalität. android.colorCorrection.transform verwenden, android.colorCorrection.gains und ein android.colorCorrection.mode von TRANSFORM_MATRIX.

android.hardware.camera.capability.manual_sensor

Die App verwendet die MANUAL_SENSOR-Funktion, die vom in die Kamera des Geräts.

Diese Funktion unterstützt die automatische Belichtungssperre (android.control.aeLock), mit der die Belichtung der Kamera und Sensibilität, um bestimmte Werte festzuhalten.

android.hardware.camera.capability.raw

Die App verwendet die RAW-Funktion, die vom Kamera.

Diese Funktion setzt voraus, dass das Gerät DNG-Dateien (Rohdateien) speichern kann. Die stellt die Kamera Ihres Geräts die für Ihren um die Rohbilder direkt zu verarbeiten.

android.hardware.camera.level.full
Die App nutzt die verfügbare Unterstützung für die Bilderfassung (FULL) von mindestens einer der Gerätekameras. Der FULL-Support umfasst Funktionen für Burst-Aufnahmen, Steuerung pro Frame und manuelle Nachbearbeitung Steuerung. Weitere Informationen finden Sie unter <ph type="x-smartling-placeholder"></ph> INFO_SUPPORTED_HARDWARE_LEVEL_FULL

Hardwarefunktionen der Geräte-UI

android.hardware.type.automotive

Die App ist so konzipiert, dass ihre Benutzeroberfläche auf mehreren Bildschirmen in einem Fahrzeug angezeigt wird. Der Nutzer interagiert mit der App über feste Tasten, Berührungen, Drehungen Controllern und mausähnlichen Benutzeroberflächen. Die Bildschirme des Fahrzeugs in der Mittelkonsole oder im Kombi-Instrument eines Fahrzeugs erscheinen. Diese Bildschirme meist eine begrenzte Größe und Auflösung haben.

Hinweis : Da der Nutzer bei Verwendung dieser Art von App-Benutzeroberfläche fährt, muss die App Ablenkung.

android.hardware.type.television

(Eingestellt; verwenden Sie android.software.leanback.)

Die App ist so konzipiert, dass ihre Benutzeroberfläche auf einem Fernseher gezeigt wird. Mit dieser Funktion wird "fernseher" als typisches Fernseherlebnis im Wohnzimmer: Die App zeigt großen Bildschirm, die nutzende Person weit weg, und die dominante Form dass es sich bei der Eingabe um ein Steuerkreuz und nicht wie eine Maus handelt, Zeiger oder Touchgerät.

android.hardware.type.watch
Die App ist so konzipiert, dass ihre Benutzeroberfläche auf einer Uhr angezeigt wird. Eine Uhr wird am Körper getragen wie am Handgelenk. Die nutzende Person befindet sich sehr nah am Gerät, während damit interagieren.
android.hardware.type.pc

Die App ist so konzipiert, dass ihre Benutzeroberfläche auf Chromebooks angezeigt wird. Durch diese Funktion wird Folgendes deaktiviert: Eingabeemulation für Maus und Touchpad, da Chromebooks Touchpad-Hardware. Weitere Informationen finden Sie unter Maus Eingabe.

Hinweis: Legen Sie required="false" für diese element; Andernfalls ist Ihre App im Google Play Store für Geräte nicht verfügbar. als Chromebooks.

Funktionen der Fingerabdruckhardware

android.hardware.fingerprint
Die App liest Fingerabdrücke über die biometrische Hardware des Geräts.

Funktionen der Gamepad-Hardware

android.hardware.gamepad
Die App erfasst Controller-Eingaben, entweder vom Gerät selbst über ein verbundenes Gamepad.

Funktionen der Infrarot-Hardware

android.hardware.consumerir
Die App nutzt die Infrarotfunktionen des Geräts, um in der Regel mit anderen IR-Geräten für Verbraucher.

Funktionen der Standorthardware

android.hardware.location
Die App verwendet eine oder mehrere Funktionen des Geräts, um den Standort zu bestimmen, wie GPS-Standort, Netzwerk- oder Mobilfunkstandort.
android.hardware.location.gps

Die App verwendet genaue Standortkoordinaten, die von einer globalen GPS-Empfänger (Positioning System) am Gerät.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.hardware.location Feature, es sei denn, dieses übergeordnete Element wird mit dem Attribut android:required="false".

android.hardware.location.network

Die App verwendet ungefähre Standortkoordinaten von einem netzwerkbasierten System zur Standortbestimmung, das auf dem Gerät unterstützt wird.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.hardware.location Feature, es sei denn, dieses übergeordnete Element wird mit dem Attribut android:required="false".

NFC-Hardwarefunktionen

android.hardware.nfc
Die App verwendet die NFC-Funkfunktionen des Geräts.
android.hardware.nfc.hce

Die App verwendet die NFC-Kartenemulation, die auf dem Gerät gehostet wird.

OpenGL ES-Hardwarefunktionen

android.hardware.opengles.aep
Für die App wird das installierte OpenGL ES Android Extension Pack verwendet auf dem Gerät.

Funktionen der Sensorhardware

android.hardware.sensor.accelerometer
Die App nutzt die Bewegungsmessungen des Beschleunigungsmessers des Geräts, um zu erkennen, aktuellen Ausrichtung des Geräts angezeigt. Eine App könnte beispielsweise Messwerte des Beschleunigungsmessers, um festzustellen, wann zwischen Hochformat und Querformat verwenden.
android.hardware.sensor.ambient_temperature
Die App verwendet den Umgebungstemperatur-Sensor des Geräts. Für Beispielsweise kann eine Wetter-App die Innen- oder Außentemperatur melden.
android.hardware.sensor.barometer
Die App verwendet das Barometer des Geräts. Eine Wetter-App könnte z. B. den Luftdruck melden.
android.hardware.sensor.compass
Die App verwendet das Magnetometer des Geräts (Kompass). Zum Beispiel könnte eine Navigation die aktuelle Richtung eines Nutzers anzeigen kann.
android.hardware.sensor.gyroscope
Die App nutzt das Gyroskop des Geräts, um Drehung und Verdrehung zu erkennen. ein sechsachsiges Ausrichtungssystem. Mit diesem Sensor kann eine App mehr zwischen Hoch- und Querformat wechseln zu können. Ausrichtungen.
android.hardware.sensor.hifi_sensors
Die App verwendet die High-Fidelity-Sensoren (Hi-Fi) des Geräts. Beispiel: die hochpräzise Bewegungen des Nutzers erkannt werden.
android.hardware.sensor.heartrate
Die App verwendet den Herzfrequenzmesser des Geräts. Beispiel: Eine Fitness-App kann Trends bei der Herzfrequenz der Nutzenden im Laufe der Zeit erfassen.
android.hardware.sensor.heartrate.ecg
Die App verwendet den Elektrokardiogramm (EKG)-Herzfrequenzsensor des Geräts. Für kann eine Fitness-App ausführlichere Informationen die Herzfrequenz der Nutzenden.
android.hardware.sensor.light
Die App verwendet den Lichtsensor des Geräts. Eine App kann beispielsweise eines von zwei Farbschemata, die sich an der Umgebungsbeleuchtung orientieren. .
android.hardware.sensor.proximity
Die App verwendet den Näherungssensor des Geräts. Beispiel: Eine Telefonie-App schaltet möglicherweise den Bildschirm des Geräts aus, wenn die App erkennt, dass der Nutzer das Gerät nah am Körper halten.
android.hardware.sensor.relative_humidity
Die App verwendet den Sensor für die relative Luftfeuchtigkeit des Geräts. Zum Beispiel wird die Wettervorhersage Die App kann die Luftfeuchtigkeit verwenden, um den aktuellen Taupunkt zu berechnen und Berichte darüber zu erstellen.
android.hardware.sensor.stepcounter
Die App verwendet den Schrittzähler des Geräts. Eine Fitness-App könnte z. B. Berichte über die Anzahl der Schritte, die Nutzende ausführen müssen, um ihren täglichen Schritt zu erreichen Zählziel
android.hardware.sensor.stepdetector
Die App verwendet die Schritterkennung des Geräts. Eine Fitness-App könnte z. B. aus dem Zeitintervall zwischen Schritten ableiten, welche Art von Training was die Nutzenden tun.

Funktionen der Bildschirmhardware

android.hardware.screen.landscape
android.hardware.screen.portrait

Für die App muss das Gerät im Hoch- oder Querformat verwendet werden. Wenn Ihre App beide Ausrichtungen unterstützt, müssen Sie einer der beiden Funktionen.

Wenn für Ihre App beispielsweise das Hochformat erforderlich ist, die folgende Funktion deklarieren, damit nur Geräte, Hochformat immer oder je nach Nutzerauswahl, können Sie Ihre App ausführen:

<uses-feature android:name="android.hardware.screen.portrait" />

Es wird davon ausgegangen, dass beide Ausrichtungen nicht standardmäßig erforderlich sind, damit Ihre App Installation auf Geräten, die eine oder beide Ausrichtungen unterstützen. Wenn jedoch Bei jeder Aktivität ist es erforderlich, dass sie in einer bestimmten Ausrichtung laufen, android:screenOrientation verwendet, impliziert diese Deklaration dass Ihre App diese Ausrichtung erfordert.

Wenn Sie beispielsweise android:screenOrientation entweder "landscape", "reverseLandscape" oder "sensorLandscape" enthält, dann ist deine App Nur auf Geräten verfügbar, die das Querformat unterstützen.

Deklarieren Sie als Best Practice Ihre Anforderung für dieses Ausrichtung mithilfe eines <uses-feature>-Elements. Wenn Sie eine Orientierung für Ihre Aktivität mit android:screenOrientation zu erhalten. tatsächlich benötigen, können Sie deaktivieren Sie die Anforderung, indem Sie die Ausrichtung mit einem <uses-feature>-Element deklarieren und android:required="false" einschließen.

Aus Gründen der Abwärtskompatibilität: alle Geräte mit Android 3.1 (API-Level 12) und niedriger unterstützt sowohl das Quer- als auch das Hochformat.

Funktionen der Telefoniehardware

android.hardware.telephony
Die App verwendet die Telefoniefunktionen des Geräts, z. B. Telefoniefunktionen mit von Datenkommunikationsdiensten.
android.hardware.telephony.cdma

Die App verwendet CDMA-Telefoniefunktionen (Code Division Multiple Access) System.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.hardware.telephony Feature, es sei denn, dieses übergeordnete Element Feature mit android:required="false" deklariert ist.

android.hardware.telephony.gsm

Die App verwendet das Global System for Mobile Communications (GSM) Funksystem.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.hardware.telephony Feature, es sei denn, dieses übergeordnete Element Feature mit android:required="false" deklariert ist.

Touchscreen-Hardwarefunktionen

android.hardware.faketouch

Die App nutzt grundlegende Touch-Interaktionsereignisse wie Tippen und durch Ziehen verschieben.

Wenn diese Funktion als erforderlich deklariert ist, gibt sie an, dass die App Nur mit einem Gerät kompatibel, wenn dieses Gerät eine emulierte „Fake-Touch-Berührung“ hat oder einen echten Touchscreen hat.

Ein Gerät mit einer gefälschten Touch-Oberfläche bietet ein Nutzereingabesystem. die einen Teil der Touchscreenfunktionen emuliert. Beispiel: Maus oder Fernbedienung möglicherweise einen Cursor auf dem Bildschirm an.

Wenn Ihre App erfordert eine einfache Punkt- und Klickinteraktion und funktioniert nicht nur mit einem Steuerkreuz handelt, deklarieren Sie diese Funktion. Weil Das ist die minimale Touch-Interaktion. Sie können auch eine App verwenden, die diese Funktion auf Geräten mit komplexerer Touchbedienung deklariert. Schnittstellen.

Apps benötigen die Die Funktion „android.hardware.faketouch“ ist standardmäßig aktiviert. Bei Bedarf auf Geräten mit Touchscreen zu beschränken, wie folgt explizit an, dass der Touchscreen erforderlich ist:

<uses-feature android:name="android.hardware.touchscreen"
    android:required="true" />

Alle Apps, die nicht explizit android.hardware.touchscreen, wie im folgenden Beispiel gezeigt, funktionieren auf Geräten mit android.hardware.faketouch.

<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
android.hardware.faketouch.multitouch.distinct

Die App trackt zwei oder mehr unterschiedliche Finger auf einer gefälschten Touchoberfläche. Dies ist eine Obermenge von android.hardware.faketouch . Wenn diese Funktion als erforderlich deklariert ist, gibt sie an, dass die App nur dann mit einem Gerät kompatibel ist, wenn dieses Gerät verschiedene Tracking mit zwei oder mehr Fingern oder verfügt über einen Touchscreen.

Im Gegensatz zu den von android.hardware.touchscreen.multitouch.distinct definierten Multi-Touchpoint-Funktionen, Unterstützung unterschiedlicher Multi-Touch-Funktionen mit einer gefälschten Touch-Oberfläche, unterstützt nicht alle Touch-Gesten mit zwei Fingern, da die Eingabe in die Cursorbewegung umgewandelt wird. auf dem Bildschirm. Das heißt, dass Touch-Gesten mit einem Finger auf einem solchen Gerät Cursor, Wischbewegungen mit zwei Fingern führen zu Berührungsereignissen mit einem Finger und Andere Zweifinger-Touch-Gesten lösen die entsprechende Zwei-Finger-Berührung aus. Ereignisse.

Gerät, das ein Touchpad mit zwei Fingern für die Cursorbewegung bietet diese Funktion unterstützen.

android.hardware.faketouch.multitouch.jazzhand

Die App erfasst fünf oder mehr verschiedene Finger auf einer gefälschten Touchoberfläche. Dies ist eine Obermenge von android.hardware.faketouch . Wenn diese Funktion als erforderlich deklariert ist, gibt sie an, dass die App nur dann mit einem Gerät kompatibel ist, wenn dieses Gerät verschiedene Tracking von fünf oder mehr Fingern oder verfügt über einen Touchscreen.

Im Gegensatz zu den von android.hardware.touchscreen.multitouch.jazzhand definierten Multi-Touchpoint-Funktionen, unterstützen Jazzhand Multitouch mit einer gefälschten Touch-Oberfläche nicht unterstützen alle 5-Finger-Gesten, da die Eingabe in die Cursorbewegung umgewandelt wird. auf dem Bildschirm. Das heißt, dass Touch-Gesten mit einem Finger auf einem solchen Gerät Touch-Gesten mit mehreren Fingern führen zu Touch-Ereignissen mit einem Finger, und andere Touchgesten mit mehreren Fingern lösen den entsprechenden Mehrfinger-Touchscreen aus. Touch-Events.

Gerät, das ein Touchpad mit fünf Fingern für die Cursorbewegung bietet diese Funktion unterstützen.

android.hardware.touchscreen

Die App nutzt die Touchscreen-Funktionen des Geräts für Touch-Gesten, interaktiver als einfache Touch-Events, wie etwa ein Fling. Dies ist ein Obermenge der Funktion android.hardware.faketouch.

Diese Funktion ist für alle Apps standardmäßig erforderlich. für Geräte verfügbar, die nur eine emulierte "falsche" Berührung bieten . Du kannst deine App auf Geräten verfügbar machen gefälschte Touchoberfläche oder sogar auf Geräten, die nur mit einem Steuerkreuz, indem explizit erklärt wird, nicht erforderlich bei Verwendung von android.hardware.touchscreen mit android:required="false". Fügen Sie diese Deklaration hinzu, wenn eine echte Touchscreen-Benutzeroberfläche nutzt, braucht sie aber keine. Alle Apps, die nicht explizit android.hardware.touchscreen funktioniert auch auf Geräten mit android.hardware.faketouch.

Wenn Ihre App eine Touchoberfläche benötigt, um beispielsweise Touch-Gesten wie Flings, erfordert keine Berührungserkennung Funktionen der Benutzeroberfläche, da diese standardmäßig benötigt werden. Es ist jedoch wenn Sie alle Funktionen, die Ihre App nutzt, explizit deklarieren.

Wenn du eine komplexere Touchbedienung benötigst, z. B. mit mehreren Fingern Gesten verwenden, gib an, dass in deiner App ein erweiterter Touchscreen verwendet wird Funktionen.

android.hardware.touchscreen.multitouch

Die App nutzt die grundlegenden Zwei-Punkt-Multi-Touch-Funktionen des Geräts, z. B. Auseinander- und Zusammenziehen der Finger, aber die App muss keine Berührungen erfassen. unabhängig voneinander unterscheiden. Dies ist eine Obermenge von Funktion „android.hardware.touchscreen“.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.hardware.touchscreen Feature, es sei denn, dieses übergeordnete Element Feature mit android:required="false" deklariert ist.

android.hardware.touchscreen.multitouch.distinct

Die App nutzt die erweiterten Multi-Touch-Funktionen des Geräts für das Tracking zwei oder mehr Punkte unabhängig voneinander. Diese Funktion ist eine Obermenge des Funktion „android.hardware.touchscreen.multitouch“.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.hardware.touchscreen.multitouch Feature, es sei denn, Parent-Feature wird mit android:required="false" deklariert.

android.hardware.touchscreen.multitouch.jazzhand

Die App nutzt die erweiterten Multi-Touch-Funktionen des Geräts für das Tracking unabhängig von fünf oder mehr Punkten. Diese Funktion ist eine Obermenge des Funktion „android.hardware.touchscreen.multitouch“.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.hardware.touchscreen.multitouch Feature, es sei denn, Parent-Feature wird mit android:required="false" deklariert.

USB-Hardware-Funktionen

android.hardware.usb.accessory
Die App verhält sich wie ein USB-Gerät und stellt eine Verbindung zu USB-Hosts her.
android.hardware.usb.host
Die App verwendet das mit dem Gerät verbundene USB-Zubehör. Die als USB-Host dient.

Vulkan-Hardwarefunktionen

android.hardware.vulkan.compute
Die App verwendet Vulkan-Computing-Funktionen. Diese Funktion gibt an, dass für die App die hardwarebeschleunigte Vulkan-Implementierung Die Funktionsversion gibt an, auf welcher Stufe der optionalen Rechenfunktionen, die die App benötigt, die über die Anforderungen von Vulkan 1.0 hinausgehen. Wenn Ihre App zum Beispiel Unterstützung von Vulkan-Compute-Level 0 erforderlich. Deklarieren Sie die folgende Funktion:
<uses-feature
    android:name="android.hardware.vulkan.compute"
    android:version="0"
    android:required="true" />
Weitere Informationen zur Featureversion finden Sie unter FEATURE_VULKAN_HARDWARE_COMPUTE.
android.hardware.vulkan.level
In der App werden Funktionen des Vulkan-Levels verwendet. Diese Funktion gibt an, dass für die App die hardwarebeschleunigte Vulkan-Implementierung Die Funktionsversion gibt an, auf welcher Stufe der optionalen Hardwarefunktionen, die die App benötigt. Beispiel: Wenn für deine App Vulkan-Hardwarestufe 0 erforderlich ist Support, erklären Sie die folgende Funktion:
<uses-feature
    android:name="android.hardware.vulkan.level"
    android:version="0"
    android:required="true" />
Weitere Informationen zur Featureversion finden Sie unter FEATURE_VULKAN_HARDWARE_LEVEL.
android.hardware.vulkan.version
Die App verwendet Vulkan. Diese Funktion gibt an, dass für die App die hardwarebeschleunigte Vulkan-Implementierung Die Version der Funktion gibt die Mindestversion des Vulkan API-Supports an. die für die App erforderlich sind. Wenn für deine App beispielsweise die Unterstützung von Vulkan 1.0 erforderlich ist, deklariere die folgende Funktion:
<uses-feature
    android:name="android.hardware.vulkan.version"
    android:version="0x400003"
    android:required="true" />
Weitere Informationen zur Featureversion finden Sie unter FEATURE_VULKAN_HARDWARE_VERSION.

Funktionen der WLAN-Hardware

android.hardware.wifi
Die App verwendet 802.11-Netzwerkfunktionen (WLAN) auf dem Gerät.
android.hardware.wifi.direct
Die App verwendet die Wi-Fi Direct-Netzwerkfunktionen auf dem Gerät.

Softwarefunktionen

In diesem Abschnitt werden die Softwarefunktionen vorgestellt, die von den neuesten Plattformrelease. Um darauf hinzuweisen, dass Ihre App eine Software verwendet oder erfordert Funktion, deklarieren Sie den entsprechenden Wert, beginnend mit "android.software" in einem android:name-Attribut. Verwenden Sie für jede Deklaration einer Softwarefunktion eine separate <uses-feature>-Element.

Funktionen der Kommunikationssoftware

android.software.sip
Die Anwendung verwendet SIP-Dienste (Session Initiation Protocol). Durch die Verwendung von SIP Anwendung kann Internettelefonievorgänge wie Videokonferenzen unterstützen und Instant Messaging.
android.software.sip.voip

Die App verwendet SIP-basierte VoIP-Dienste (Voice Over Internet Protocol). Von über VoIP ermöglicht die App Internettelefonie in Echtzeit, z. B. bei bidirektionalen Videokonferenzen.

Durch die Nutzung dieser Funktion impliziert eine App, dass sie auch die android.software.sip Feature, es sei denn, dieses übergeordnete Element ist mit android:required="false" deklariert.

android.software.webview
Die App zeigt Inhalte aus dem Internet an.

Benutzerdefinierte Funktionen der Eingabesoftware

android.software.input_methods
Die App verwendet eine neue Eingabemethode, die vom Entwickler in einem InputMethodService definiert wird.

Funktionen der Software zur Geräteverwaltung

android.software.backup
Die Anwendung enthält Logik für die Verarbeitung eines Sicherungs- und Wiederherstellungsvorgangs.
android.software.device_admin
Die App verwendet Geräteadministratoren, um Geräterichtlinien zu erzwingen.
android.software.managed_users
Die Anwendung unterstützt sekundäre Nutzer und verwaltete Profile.
android.software.securely_removes_users
Die App kann Nutzer und ihre verknüpften dauerhaft entfernen. Daten.
android.software.verified_boot
Die App enthält eine Logik zur Verarbeitung von Ergebnissen aus dem verifizierten Bootmodus des Geräts. verwendet, die erkennt, ob sich die Konfiguration des Geräts während eines neu starten.

Funktionen der Mediensoftware

android.software.midi
Die App verbindet sich mit Musikinstrumenten oder gibt über das Musical MIDI-Protokoll (Instrument Digital Interface)
android.software.print
Die App enthält Befehle zum Drucken von Dokumenten, die auf dem Gerät angezeigt werden.
android.software.leanback
Die App wurde für Android TV-Geräte entwickelt.
android.software.live_tv
Die App streamt Live-Fernsehprogramme.

Softwarefunktionen für die Bildschirmoberfläche

android.software.app_widgets
Die App verwendet oder stellt App-Widgets zur Verfügung und ist nur für Geräte mit einem Startbildschirm oder einem ähnlichen Ort, an dem Nutzer App Widgets einzubetten.
android.software.home_screen
Die App fungiert als Ersatz für den Startbildschirm des Geräts.
android.software.live_wallpaper
Die App verwendet Hintergründe, die Animationen enthalten, oder stellt diese zur Verfügung.

Berechtigungen, die bestimmte Funktionsanforderungen erfordern

Einige Hardware- und Softwarefunktionskonstanten werden nach der entsprechenden API hinzufügen. Aus diesem Grund verwenden einige Apps die API möglicherweise schon vor können sie mithilfe des <uses-feature>-System.

Um zu verhindern, dass diese Apps unbeabsichtigt verfügbar gemacht werden, hat Google Play geht davon aus, dass bestimmte hardwarebezogene Berechtigungen darauf hinweisen, zugrunde liegende Hardwarefunktionen sind standardmäßig erforderlich. Beispiel: Apps, die Bluetooth verwenden, müssen den BLUETOOTH anfordern in einem <uses-permission>-Element.

Für ältere Versionen Apps gehören, geht Google Play davon aus, dass die Erklärung zu Berechtigungen bedeutet, dass die zugrunde liegendes android.hardware.bluetooth-Feature ist vom und richtet die Filterung auf der Grundlage dieser Funktion ein. Tabelle 2: Listen Berechtigungen erforderlich sind, die Funktionen erfordern, die denen entsprechen, <uses-feature>-Elemente.

<uses-feature>-Deklarationen, einschließlich etwaiger deklarierten android:required-Attributen, haben immer Vorrang vor Funktionen, die durch die Berechtigungen in Tabelle 2 impliziert werden. Für jede dieser Berechtigungen können Sie das Filtern auf Grundlage der impliziten Funktion deaktivieren, indem Sie Die Funktion wird in einem <uses-feature>-Element deklariert, wobei das Attribut required auf false gesetzt ist.

Wenn Sie beispielsweise Filtern basierend auf der Berechtigung CAMERA deaktivieren, fügen Sie den folgende <uses-feature>-Deklarationen in die Manifestdatei einfügen:

<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

Achtung:Wenn Ihre App auf Android 5.0 (API-Level 21) oder und verwendet ACCESS_COARSE_LOCATION oder Berechtigung für ACCESS_FINE_LOCATION zum Abrufen des Standorts aus dem Netzwerk bzw. einem GPS-Gerät aktualisiert, müssen Sie auch erklären, dass deine App die android.hardware.location.network verwendet oder android.hardware.location.gps-Hardwarefunktionen.

Tabelle 2. Geräteberechtigungen, die die Nutzung der Gerätehardware nahelegen.

Kategorie Berechtigung Implizite Funktionsanforderung
Bluetooth BLUETOOTH android.hardware.bluetooth

Weitere Informationen

BLUETOOTH_ADMIN android.hardware.bluetooth
Kamera CAMERA android.hardware.camera
android.hardware.camera.autofocus
Standort ACCESS_MOCK_LOCATION android.hardware.location
ACCESS_LOCATION_EXTRA_COMMANDS android.hardware.location
INSTALL_LOCATION_PROVIDER android.hardware.location
ACCESS_COARSE_LOCATION

android.hardware.location

android.hardware.location.network (Nur wenn das Ziel-API-Level 20 oder niedriger ist.)

ACCESS_FINE_LOCATION

android.hardware.location

android.hardware.location.gps (Nur wenn das Ziel-API-Level 20 oder niedriger ist.)

Mikrofon RECORD_AUDIO android.hardware.microphone
Telefonie CALL_PHONE android.hardware.telephony
CALL_PRIVILEGED android.hardware.telephony
MODIFY_PHONE_STATE android.hardware.telephony
PROCESS_OUTGOING_CALLS android.hardware.telephony
READ_SMS android.hardware.telephony
RECEIVE_SMS android.hardware.telephony
RECEIVE_MMS android.hardware.telephony
RECEIVE_WAP_PUSH android.hardware.telephony
SEND_SMS android.hardware.telephony
WRITE_APN_SETTINGS android.hardware.telephony
WRITE_SMS android.hardware.telephony
WLAN ACCESS_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_STATE android.hardware.wifi
CHANGE_WIFI_MULTICAST_STATE android.hardware.wifi