APIs unter Android 2.3

API-Level: 9

Für Entwickler ist die Android 2.3-Plattform (GINGERBREAD) als herunterladbare Komponente für das Android SDK verfügbar. Die herunterladbare Plattform enthält unter anderem eine Android-Bibliothek und ein System-Image sowie eine Reihe von Emulator-Skins. Um mit der Entwicklung oder Tests für Android 2.3 zu beginnen, Verwenden Sie den Android SDK Manager, um die Plattform in Ihr SDK herunterzuladen.

API-Übersicht

In den folgenden Abschnitten finden Sie einen technischen Überblick über die Neuigkeiten für Entwickler in Version 2.3, einschließlich neuer Funktionen und Änderungen an der Framework-API seit der vorherigen Version.

SIP-basierte VoIP

Die Plattform enthält jetzt einen SIP-Protokollstack und eine Framework-API, mit denen Entwickler Internettelefonieanwendungen erstellen können. Mit der API können Anwendungen Sprachanruffunktionen, ohne Sitzungen verwalten zu müssen, Kommunikation oder Audio – diese werden transparent durch die SIP API und die Dienste der Plattform.

Die SIP API ist im Paket android.net.sip verfügbar. Die Schlüsselklasse ist SipManager, d. h., welche Anwendungen zum Einrichten und Verwalten von SIP-Profilen, zum Starten von Sprachanrufen und zum Empfangen von Sprachanrufe. Sobald ein Sprachanruf hergestellt ist, können Anwendungen Anrufe stummschalten, Lautsprechermodus aktivieren, DTMF-Töne senden usw. Anwendungen können auch SipManager verwenden, um generische SIP-Verbindungen zu erstellen.

Der zugrunde liegende SIP-Stack und die Dienste der Plattform sind auf Geräten nach Ermessen des Herstellers und des zugehörigen Mobilfunkanbieters verfügbar. Aus diesem Grund sollten Anwendungen die Methode isApiSupported() verwenden, um zu prüfen, ob SIP-Support verfügbar ist, bevor die Anruffunktion für Nutzer freigeschaltet wird.

Zur Verwendung der SIP API müssen Anwendungen eine Berechtigung vom Nutzer anfordern, indem sie in ihren Manifestdateien <uses-permission android:name="android.permission.INTERNET"> und <uses-permission android:name="android.permission.USE_SIP"> deklarieren.

Außerdem können Entwickler eine Filterung bei Google Play anfordern, damit ihre Apps für Nutzer nicht sichtbar sind, deren Geräte nicht den SIP-Stack und die Dienste der Plattform enthalten. Wenn Sie eine Filterung anfordern möchten, fügen Sie dem Anwendungsmanifest <uses-feature android:name="android.software.sip" android:required="true"> und <uses-feature android:name="android.software.sip.voip"> hinzu.

Weitere Informationen finden Sie im SIP-Entwicklerleitfaden.

Nahfeldkommunikation (NFC)

Android 2.3 enthält einen NFC-Stack und eine Framework-API, mit denen Entwickler NDEF-Tags lesen können, die erkannt werden, wenn ein Nutzer ein NFC-fähiges Gerät berührt. So können Elemente getaggt werden, die in Sticker, Smart Poster und sogar andere Geräte eingebettet sind.

Die Plattform stellt die zugrunde liegenden NFC-Dienste bereit, die mit dem Gerät kompatibel sind. um Tags zu erkennen, wenn sie in Reichweite sind. Wenn ein Tag erkannt wird, Plattform benachrichtigt Anwendungen durch Übertragung eines Intents und Anhängen des Tags NDEF-Nachrichten an den Intent als Extras. Anwendungen können Intent-Filter erstellen, um zielgerichtete Tags und Nachrichten zu erkennen und zu verarbeiten. Nachdem eine Anwendung beispielsweise ein Tag per Intent empfangen hat, werden die NDEF-Nachrichten extrahiert, gespeichert, der Nutzer benachrichtigt oder die Nachrichten werden anderweitig verarbeitet.

Die NFC API ist im Paket android.nfc verfügbar. Die wichtigsten Klassen sind:

  • NfcAdapter, die die NFC-Hardware auf dem Gerät darstellt.
  • NdefMessage, die eine NDEF-Datennachricht darstellt, das Standardformat, in dem „aufgezeichnet“ übertragene Daten zwischen Geräte und Tags. Anwendungen können diese Nachrichten von ACTION_TAG_DISCOVERED-Intents empfangen.
  • NdefRecord, ausgeliefert in einem NdefMessage, die die Art der freigegebenen Daten und die Daten selbst trägt.

Die NFC-Kommunikation basiert auf der drahtlosen Technologie in der Gerätehardware. Die Unterstützung der NFC-Funktionen der Plattform auf bestimmten Geräten wird daher von den jeweiligen Herstellern bestimmt. Um die NFC-Unterstützung auf dem aktuellen Gerät zu ermitteln, können Anwendungen isEnabled() aufrufen, um die NfcAdapter abzufragen. Die NFC API ist immer vorhanden, unabhängig von der zugrunde liegenden Hardwareunterstützung.

Wenn Sie die NFC API verwenden möchten, müssen Apps die Berechtigung des Nutzers anfordern, indem sie <uses-permission android:name="android.permission.NFC"> in ihren Manifestdateien deklarieren.

Darüber hinaus können Entwickler eine Filterung bei Google Play beantragen, Ihre Anwendungen sind für Nutzer, deren Geräte nicht unterstützt werden, nicht sichtbar. NFC: Um Filter anzufordern, fügen Sie <uses-feature android:name="android.hardware.nfc" android:required="true"> zum Manifest der Anwendung.

Eine Beispielanwendung, die die NFC API verwendet, finden Sie unter NFCDemo.

Gyroskop und andere Sensoren

Android 2.3 unterstützt Plattform- und API-Unterstützung für mehrere neue Sensormesswerte Gyroskop, Rotationsvektor, lineare Beschleunigung, Schwerkraft und Barometer. Entwickler können die neuen Sensorwerte nutzen, um Anwendungen zu erstellen, die auf präzise Änderungen der Geräteposition und ‐bewegungen reagieren. Die Die Sensor API meldet Änderungen des Gyroskops und andere Sensoränderungen an interessierte Nutzer unabhängig davon, ob sie im Anwendungs-Framework oder in nativen Code.

Beachte, dass die spezifischen Hardwaresensoren, die für jedes Gerät verfügbar sind, variiert im Ermessen des Geräteherstellers.

Entwickler können bei Google Play einen Filter anfordern, Anwendungen sind für Nutzer, deren Geräte kein Gyroskopsensor. Füge dazu dem App-Manifest <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true"> hinzu.

Weitere Informationen zur API finden Sie unter Sensor.

Unterstützung mehrerer Kameras

Apps können jetzt alle Kameras auf einem Gerät für die Foto- oder Videoaufnahme nutzen. Mit Camera können die Anzahl der verfügbaren Kameras und die eindeutige Merkmale der einzelnen Elemente.

Beispielcode für den Zugriff auf eine Frontkamera finden Sie unter CameraPreview.java. in der Beispiel-App „ApiDemos“ ein.

Die Camera API bietet außerdem folgende Funktionen:

Mixbare Audioeffekte

Das Media-Framework der Plattform unterstützt neue Audioeffekte pro Track oder global, darunter Bassverstärkung, Kopfhörervirtualisierung, Equalizer und Hall.

Beispielcode für Audioeffekte finden Sie in der Beispielanwendung ApiDemos unter AudioFxDemo.java.

Das Media-Framework bietet außerdem folgende Vorteile:

  • Neue Unterstützung für Höhen-Tags in EXIF-Metadaten für JPEG-Dateien. Neue Methode getAltitude() zum Abrufen des Werts des EXIF-Höhentags.
  • Mit der neuen setOrientationHint()-Methode kann eine Anwendung MediaRecorder während der Videoaufnahme über die Ausrichtung informieren.

Download-Manager

Die Plattform enthält einen neuen DownloadManager-Systemdienst, der langlaufende HTTP-Downloads verarbeitet. Anwendungen können anfordern, dass ein URI die in eine bestimmte Zieldatei heruntergeladen wurden. Der DownloadManager führt den Download im Hintergrund durch, kümmert sich um HTTP-Interaktionen und versucht, den Download nach Fehlern oder bei Verbindungsänderungen und Systemneustarts noch einmal auszuführen.

  • Anwendungen können eine Instanz der Klasse DownloadManager abrufen, indem sie getSystemService(String) aufrufen und DOWNLOAD_SERVICE übergeben. Anwendungen, die Downloads über diese API anfordern, sollten einen Broadcast-Empfänger für ACTION_NOTIFICATION_CLICKED registrieren, um den Fall zu behandeln, dass der Nutzer in einer Benachrichtigung oder über die Download-Benutzeroberfläche auf einen laufenden Download klickt.
  • Mit der Klasse DownloadManager.Request kann ein App alle erforderlichen Informationen zur Anforderung eines neuen Downloads bereitstellen, wie der Anforderungs-URI und das Downloadziel. Ein Anfrage-URI ist die einzige erforderliche . Das Standarddownloadziel ist ein freigegebenes Volume, auf dem das System Ihre Datei löschen kann, wenn es Speicherplatz für die Systemnutzung benötigt. Wenn Sie einen Download dauerhaft speichern möchten, geben Sie ein Downloadziel im externen Speicher an (siehe setDestinationUri(Uri)).
  • Die Klasse DownloadManager.Query bietet Methoden, mit denen eine Anwendung nach aktiven Downloads suchen und diese filtern kann.

StrictMode

Um Entwicklern dabei zu helfen, die Leistung ihrer Anwendungen zu überwachen und zu verbessern, bietet die Plattform eine neue Systemfunktion namens StrictMode. Bei der Implementierung in einer Anwendung erfasst StrictMode und benachrichtigt den Entwickler versehentlicher Datenträger- oder Netzwerkaktivitäten, die die Anwendung beeinträchtigen könnten Leistung, z. B. Aktivitäten im Hauptthread der Anwendung (wo UI-Vorgänge empfangen werden und auch Animationen stattfinden). Entwickler können die im StrictMode gemeldeten Probleme mit Netzwerk- und Laufwerknutzung bewerten und bei Bedarf korrigieren. So bleibt der Haupt-Thread reaktionsschneller und ANR-Dialogfelder werden Nutzern nicht angezeigt.

  • StrictMode ist die Hauptklasse und der Hauptintegrationspunkt mit dem System und der VM. Die Klasse bietet praktische Methoden zum Verwalten der Thread- und VM-Richtlinien, die für die Instanz gelten.
  • StrictMode.ThreadPolicy und StrictMode.VmPolicy enthalten die Richtlinien, die Sie definieren und auf Thread- und VM-Instanzen anwenden.

Weitere Informationen zur Optimierung Ihrer Anwendung mit StrictMode finden Sie in der Klassendokumentation und im Beispielcode unter android.os.StrictMode.

UI-Framework

  • Unterstützung für Overscroll
    • Neue Unterstützung für das Überscrollen in Ansichten und Widgets. In Ansichten können Anwendungen das Überscrollen für eine bestimmte Ansicht aktivieren/deaktivieren, den Überscroll-Modus festlegen, den Überscroll-Abstand steuern und die Ergebnisse des Überscrollens verarbeiten.
    • In Widgets können Anwendungen Overscroll-Eigenschaften steuern, z. B. die Distanz für Animation, Springback und Overscroll. Weitere Informationen finden Sie unter android.view.View und android.widget.OverScroller.
    • ViewConfiguration bietet auch die Methoden getScaledOverflingDistance() und getScaledOverscrollDistance().
    • Neue overScrollMode-, overScrollFooter- und overScrollHeader-Attribute für <ListView>-Elemente zum Steuern des Überlaufverhaltens.
  • Unterstützung für Touch-Filter
    • Neue Unterstützung für Berührungsfilter, mit denen eine Anwendung die Sicherheit von Ansichten, die Zugriff auf vertrauliche Funktionen ermöglichen. Beispiel: Touch-Filter sind geeignet, um die Sicherheit von Nutzeraktionen wie um eine Berechtigungsanfrage zu erteilen, einen Kauf zu tätigen oder auf eine Werbung. Weitere Informationen finden Sie in der Dokumentation zum Ansehen von Kursen.
    • Neues filterTouchesWhenObscured-Attribut für Ansichtselemente, das angibt, ob Berührungen gefiltert werden sollen, wenn das Fenster der Ansicht von einem anderen sichtbaren Fenster verdeckt wird. Wenn "true" festgelegt ist, wird die Ansicht nicht berührt werden, wenn ein Toast, ein Dialogfeld oder ein anderes Fenster angezeigt wird. Weitere Informationen finden Sie unter Sicherheit ansehen finden Sie in der Dokumentation.

    Beispielcode für den Touch-Filter finden Sie in der Beispielanwendung ApiDemos unter SecureView.java.

  • Verbesserte Ereignisverwaltung
    • Neue Basisklasse für Eingabeereignisse: InputEvent. Die Klasse Methoden, mit denen Anwendungen die Bedeutung eines Ereignisses bestimmen können, wie z. B. durch Abfrage des InputDevice, von dem das Ereignis stammt. KeyEvent und MotionEvent sind Unterklassen von InputEvent.
    • Neue Basisklasse für Eingabegeräte, InputDevice. Die Klasse speichert Informationen zu den Funktionen eines bestimmten Eingabegeräts und bietet Methoden, mit denen Anwendungen festlegen können, wie Ereignisse von einem Eingabegerät interpretiert werden sollen.
  • Verbesserte Bewegungsereignisse
    • Die MotionEvent API wurde um Informationen zur „Cursor-ID“ erweitert, mit denen Anwendungen einzelne Finger verfolgen können, wenn sie sich nach oben und unten bewegen. Die Klasse bietet eine Vielzahl von Methoden, mit denen eine Anwendung effizient mit Bewegungsereignissen arbeiten kann.
    • Das Eingabesystem hat jetzt eine Logik, mit der Bewegungsereignisse mit den neuen Informationen zur Zeiger-ID generiert werden. Dabei werden IDs synthetisiert, wenn neue Zeiger nicht mehr vorhanden sind. Die mehrere Zeiger-IDs separat während eines Bewegungsereignisses erfasst. stellt die korrekte Kontinuität der Zeiger sicher, indem sie anhand der Distanz bewertet wird. zwischen dem letzten und dem nächsten Satz von Zeigern.
  • Steuerelemente für die Textauswahl
    • Mit einer neuen setComposingRegion-Methode kann eine Anwendung einen Textbereich als eingegebenen Text markieren und dabei das aktuelle Styling beibehalten. A Die Methode getSelectedText gibt den ausgewählten Text an den . Die Methoden sind in BaseInputConnection, InputConnection und InputConnectionWrapper verfügbar.
    • Neue textSelectHandle-, textSelectHandleLeft-, textSelectHandleRight- und textSelectHandleWindowStyle-Attribute für <TextView>, um auf Drawables zu verweisen, die zum Darstellen von Ankern für die Textauswahl und zum Stil des enthaltenden Fensters verwendet werden.
  • Aktivitätseinstellungen
  • Benachrichtigungstext und -symbolstile
  • Übergroße Bildschirme

    Die Plattform unterstützt jetzt besonders große Bildschirmgrößen, wie sie auf Tablets zu finden sind. Entwickler können angeben, dass ihre Apps zur Unterstützung sehr großer Bildschirmgrößen entwickelt, indem dem Manifest ein <supports screens ... android:xlargeScreens="true">-Element hinzugefügt wird -Dateien. Mit dem neuen Ressourcenqualifizierer xlarge können Entwickler Ressourcen taggen, die speziell für extra große Bildschirme gedacht sind. Für Details zur Unterstützung extragroßer und anderer Bildschirmgrößen finden Sie unter Unterstützung mehrerer Bildschirme:

    Grafik

    Contentanbieter

    • Neue AlarmClock-Anbieterklasse zum Stellen eines Weckers oder den Umgang mit einem Alarm. Der Anbieter enthält einen ACTION_SET_ALARM-Intent und Extras, mit denen eine Aktivität gestartet werden kann, um in einem Wecker-App. Apps, die die SET_ALARM Der Intent sollte eine Aktivität erstellen, für die Folgendes erforderlich ist: die Berechtigung SET_ALARM. Anwendungen, die eine neue Der Alarm sollte Context.startActivity() verwenden, damit der Nutzer die Möglichkeit hat, welche Wecker-App verwendet werden soll.
    • MediaStore unterstützt eine neue Intent-Aktion, PLAY_FROM_SEARCH, mit der eine Anwendung nach Musikmedien suchen und Inhalte aus dem Ergebnis nach Möglichkeit automatisch abspielen kann. Beispiel: Anwendung könnte diesen Intent als Ergebnis eines Spracherkennungsbefehls auslösen. Musik zu hören.
    • MediaStore fügt außerdem ein neues MEDIA_IGNORE_FILENAME-Flag hinzu, das den Medien Scanner, um Medien im enthaltenen Verzeichnis und seinen Unterverzeichnissen zu ignorieren. So können Entwickler verhindern, dass Grafiken in der Galerie angezeigt werden, und auch verhindern, dass App-Töne und -Musik in der Musik-App erscheinen.
    • Der Anbieter „Settings“ fügt die neuen Aktivitätsaktionen hinzu APPLICATION_DETAILS_SETTINGS und MANAGE_ALL_APPLICATIONS_SETTINGS, mit denen eine Anwendung die Details anzeigen kann für eine bestimmte Anwendung oder rufen Sie den Bildschirm "Apps verwalten" auf.
    • Der Anbieter ContactsContract fügt die Datentypen ContactsContract.CommonDataKinds.SipAddress für Speichern der SIP-Adresse (Internet Telephony) eines Kontakts.

    Standort

    • LocationManager verfolgt nun die Anwendung die zu Wakelocks oder WLAN-Locks führen, WorkSource, eine vom System verwaltete Klasse, die die .

      Mit LocationManager behältst du den Überblick alle Kunden, die regelmäßige Updates anfordern, und informiert ihre Anbieter als WorkSource-Parameter angeben, wenn Sie Aktualisierungszeiten. Der Anbieter des Netzwerkstandorts verwendet WorkSource, um die von einer App initiierten Sperrungen für Aktivierung und WLAN zu erfassen und der Akkunutzung der App hinzuzufügen, die im Bereich „Apps verwalten“ erfasst wird.

    • Mit der LocationManager werden mehrere neue Methoden hinzugefügt, kann eine Aktivität registriert werden, um regelmäßige oder einmalige Standortaktualisierungen für bestimmte Kriterien (siehe unten).
    • Mit einer neuen Criteria-Klasse kann eine Anwendung eine Reihe von Kriterien für die Auswahl eines Standortanbieters angeben. Anbieter können beispielsweise sortiert nach Genauigkeit, Energieverbrauch, Höhe, Geschwindigkeit, und Lagerung sowie die monetären Kosten.

    Speicher

    • Android 2.3 enthält eine neue StorageManager, die OBB-Dateien (Opaque Binary Blob) unterstützt. Obwohl die Plattformunterstützung für OBB Verfügbar in Android 2.3, Entwicklungstools zum Erstellen und Verwalten von OBB-Dateien werden erst Anfang 2011 verfügbar sein.
    • Die Android 2.3-Plattform bietet offizielle Unterstützung für Geräte, die keine SD-Karten enthalten (obwohl es eine Partition für virtuelle SD-Karten bietet, wenn keine physische SD-Karte verfügbar ist. Mit der praktischen Methode isExternalStorageRemovable() können Anwendungen feststellen, ob eine physische SD-Karte vorhanden ist.

    Paketmanager

    • Neue Konstanten für die Deklaration von Hardware- und Softwarefunktionen. Eine Liste finden Sie unten im Abschnitt Konstanten für neue Funktionen.
    • Mit PackageInfo werden die neuen Felder firstInstallTime und lastUpdateTime hinzugefügt, in denen die Zeit der Paketinstallation und der letzten Aktualisierung gespeichert werden.
    • Neue getProviderInfo()-Methode zum Abrufen aller bekannten Informationen zu einer bestimmten Contentanbieterklasse.

    Telefonie

    • Mit TelephonyManager wird die Konstante NETWORK_TYPE_EVDO_B hinzugefügt, um den CDMA-EVDO Rev B-Netzwerktyp anzugeben.
    • Die neue getPsc()-Methode gibt den primären Scrambling-Code der Basisstation in einem UMTS-Netzwerk zurück.

    Nativer Zugriff auf den Aktivitätslebenszyklus, Fenster

    Android 2.3 stellt eine breite Palette von APIs für Anwendungen zur Verfügung, die native Code. Für solche Anwendungen relevante Framework-Klassen:

    • NativeActivity ist eine neue Art von Activity-Klasse, mit der Lebenszyklus-Callbacks werden direkt im nativen Code implementiert. Eine NativeActivity und der zugrunde liegende native Code werden im System ausgeführt, genau wie andere Aktivitäten. Sie werden im Systemprozess der Android-Anwendung und im Haupt-UI-Thread der Anwendung ausgeführt und erhalten dieselben Lebenszyklus-Callbacks wie andere Aktivitäten.
    • Mit der neuen InputQueue-Klasse und Callback-Oberfläche kann nativer Code die Ereignisabfolge verwalten.
    • Mit der neuen SurfaceHolder.Callback2-Oberfläche können Sie nativen Code ein SurfaceHolder verwalten.
    • Mit den neuen takeInputQueue- und takeSurface()-Methoden in Window können Ereignisse und Oberflächen in nativem Code verwaltet werden.

    Ausführliche Informationen zur Arbeit mit nativem Code oder zum Herunterladen des NDK finden Sie auf der Seite Android NDK.

    Dalvik-Laufzeit

    Neue Manifest-Elemente und -Attribute

    • Neues xlargeScreens-Attribut für <supports-screens> -Element, um anzugeben, ob die Anwendung Formfaktoren für extragroße Bildschirme. Weitere Informationen finden Sie unter Mehrere Bildschirme unterstützen.
    • Neue Werte für das android:screenOrientation-Attribut des <activity>-Elements:
      • "reverseLandscape": Für die Aktivität sollte der Bildschirm im Querformat angezeigt werden, also entgegengesetzt zum normalen Querformat.
      • "reversePortrait": Die Aktivität benötigt die Bildschirm im Hochformat, entgegen der normalen Richtung gedreht Porträt.
      • "sensorLandscape": Für die Aktivität sollte der Bildschirm im Querformat sein, aber der Sensor kann verwendet werden, um die Ausrichtung des Displays zu ändern.
      • "sensorPortrait": Die Aktivität benötigt die im Hochformat angezeigt wird, kann aber mithilfe des Sensors die Richtung das Display zeigt.
      • "fullSensor": Die Ausrichtung wird durch einen physischen Ausrichtungssensor bestimmt. Das Display dreht sich je nachdem, wie der Nutzer das Gerät bewegt. So ist jede der vier möglichen Drehungen möglich, unabhängig davon, was das Gerät normalerweise tut. Bei einigen Geräten wird beispielsweise normalerweise keine 180-Grad-Drehung verwendet.

    Neue Berechtigungen

    • com.android.permission.SET_ALARM: Ermöglicht einer App, einen Intent zu senden, um einen Wecker für den Nutzer einzustellen. Eine Aktivität, bei der Intent-Aktion SET_ALARM benötigen Sie diese Berechtigung.
    • android.permission.USE_SIP: Ermöglicht es einer App, über SIP API Internetanrufe zu starten oder zu empfangen.
    • android.permission.NFC: Ermöglicht einer App, die NFC API, um NFC-Tags zu lesen.

    Neue Funktionskonstanten

    Die Plattform bietet mehrere neue Hardwarefunktionen, die Entwickler in ihren Anwendungsmanifesten als für ihre Anwendungen erforderlich deklarieren können. Dieses können Entwickler festlegen, wie ihre Anwendung gefiltert wird, wenn sie auf Google Play

    Ausführliche Informationen zum Deklarieren von Funktionen und deren Verwendung zum Filtern finden Sie in der Dokumentation zu <uses-feature>.

    Bericht zu API-Unterschieden

    Eine detaillierte Ansicht aller API-Änderungen unter Android 2.3 (API) Level 9) finden Sie in der API Bericht zu Unterschieden

    API-Ebene

    Die Android 2.3-Plattform bietet eine aktualisierte Version der Framework-API. Der Android 2.3 API wird eine Ganzzahl-ID zugewiesen, die 9 lautet und im System selbst gespeichert wird. Anhand dieser Kennung, der sogenannten API-Ebene, kann das System vor der Installation einer Anwendung korrekt feststellen, ob sie mit dem System kompatibel ist.

    Um in Ihrer App APIs zu verwenden, die in Android 2.3 eingeführt wurden, müssen Sie die Anwendung anhand der Android-Bibliothek kompilieren, die im der Android 2.3 SDK-Plattform. Je nach Ihren Anforderungen können Sie muss auch ein android:minSdkVersion="9"-Element <uses-sdk>-Element im Feld Manifests. Wenn Ihre Anwendung nur für Android 2.3 und höher entwickelt wurde, wird durch die Deklaration des Attributs verhindert, dass die Anwendung auf früheren Versionen der Plattform installiert wird.

    Weitere Informationen finden Sie unter Was ist die API-Ebene?