Auf dieser Seite werden alle Verhaltensänderungen beschrieben, die sich auf Apps auswirken und dem Kompatibilitäts-Framework in Android 11 (API-Ebene 30) hinzugefügt wurden. Verwende diese Liste zusammen mit den Entwickleroptionen und ADB-Befehlen, um deine App zu testen und zu debuggen, während du dich auf Android 11 vorbereitest.
ADD_CONTENT_OBSERVER_FLAGS
Änderungs-ID: 150939131
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Für Apps, die auf Android 11 ausgerichtet sind, gibt es die neue öffentliche API-Überlastung onChange(boolean, Uri, int)
, die ein Ganzzahlargument flags
enthält.
Diese neue Methode ist eine öffentliche SDK-Alternative für Apps, die die nicht-SDK-überladene Methode onChange()
mit einem Ganzzahlargument userId
verwenden.
ADMIN_APP_PASSWORD_COMPLEXITY
Änderungs-ID: 123562444
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Administrator-Apps, die auf Android 11 ausgerichtet sind, muss ein Fehler ausgegeben werden, wenn eine App eine Passwortanforderungen festlegt, die für die aktuell zugewiesene Passwortqualität nicht relevant ist. Wenn die Passwortqualität beispielsweise auf DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
festgelegt ist, kann eine App keine Mindestpasswortlänge festlegen. In diesem Fall sollte die Anwendung vor dem Festlegen der Mindestpasswortlänge zuerst die Methode setPasswordQuality()
und erst dann die Methode setPasswordMinimumLength()
aufrufen.
Wenn eine Administrator-App, die auf Android 11 ausgerichtet ist, die Passwortqualität herabsetzt, werden alle nicht mehr geltenden Passwortanforderungen auf die Standardwerte zurückgesetzt.
APP_DATA_DIRECTORY_ISOLATION
Änderungs-ID: 143937733
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Apps, die auf Android 11 ausgerichtet sind, können nicht mehr auf Dateien in privaten Datenverzeichnissen irgendeiner App zugreifen, unabhängig von der Ziel-SDK-Version der anderen App.
Weitere Informationen finden Sie unter Zugriff auf private Verzeichnisse.
APN_READING_PERMISSION_CHANGE_ID (APN_READING_PERMISSION_CHANGE_ID)
Änderungs-ID: 124107808
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Für Apps, die auf Android 11 ausgerichtet sind, ist für den Zugriff auf die APN-Datenbank jetzt die Berechtigung Manifest.permission.WRITE_APN_SETTINGS
erforderlich.
Weitere Informationen zu dieser Änderung finden Sie unter Eingeschränkter Lesezugriff auf APN-Datenbanken.
BACKGROUND_RATIONALE_CHANGE_ID
Änderungs-ID: 147316723
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Apps müssen jetzt jedes Mal einen gültigen Grund angeben, wenn sie im Hintergrund Zugriff auf den Standort des Geräts anfordern.
Weitere Informationen zu dieser Änderung findest du in der Anleitung Zugriff auf die Standortermittlung im Hintergrund in Android 11. Darin werden Änderungen des Datenschutzes in Bezug auf den Standort in Android 11 erörtert.
CALLBACK_ON_CLEAR_CHANGE
Änderungs-ID: 119147584
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Jedes Mal, wenn Editor.clear
aufgerufen wird, wird jetzt ein Rückruf an OnSharedPreferenceChangeListener.onSharedPreferenceChanged
mit einem null
-Schlüssel gesendet.
Weitere Informationen zu dieser Änderung finden Sie unter Änderungen am Rückruf für OnSharedPreferenceChangeListener.
Callback_ON_MORE_ERROR_CODE_CHANGE
Änderungs-ID: 130595455
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Die Fehlercodes wurden jetzt für updateAvailableNetworks(List,
Executor,
Consumer)
und setPreferredOpportunisticDataSubscription(int, boolean, Executor,
Consumer)
erweitert.
CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE
Änderungs-ID: 148180766
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Das ist eine kleine Verhaltensänderung bei startWatchingMode(String, String,
AppOpsManager.OnOpChangedListener)
.
Vor dieser Änderung wird das System für den gewechselten Vorgang zurückgerufen. Nach der Änderung ruft das System für den tatsächlich angeforderten Vorgang oder alle Switches zurück, wenn kein Vorgang angegeben ist.
CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID
Änderungs-ID: 136219221
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Apps, die auf Android 11 ausgerichtet sind, können Dienste im Vordergrund nur dann die Kamera- und Mikrofonfunktionen nutzen, wenn sie verwendet werden, wenn R.attr.foregroundServiceType
in der Manifestdatei als ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA
bzw. ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE
konfiguriert ist. In früheren Android-Versionen erhielten Dienste im Vordergrund automatisch Kamera- und Mikrofonfunktionen.
Weitere Informationen zu dieser Änderung finden Sie unter Arten von Diensten im Vordergrund in Android 11.
HINTERGRUND_BENUTZERDEFINIERTER_TOAST_BLOCK ÄNDERN
ID der Änderung: 128611929
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Apps können keine benutzerdefinierten Benachrichtigungen mehr im Hintergrund posten. Apps können jedoch weiterhin Toasts mit der Methode Toast.makeText(Context, CharSequence,
int)
und ihren Varianten im Hintergrund posten.
Weitere Informationen zu dieser Änderung finden Sie unter Benutzerdefinierte Toast-Anzeigen werden blockiert.
CHANGE_RESTRICT_SAW_INTENT
Änderungs-ID: 135920175
Standardstatus: Diese Änderung kann nicht deaktiviert werden. Sie wird nur vom Kompatibilitäts-Framework protokolliert.
Bei Intents mit der Aktion android.settings.MANAGE_APP_OVERLAY_PERMISSION
und dem Daten-URI-Schema package
werden Nutzer nicht mehr zu einem app-spezifischen Bildschirm weitergeleitet, auf dem sie die zugehörige Berechtigung verwalten können. Stattdessen wird der Nutzer zu einem Bildschirm weitergeleitet, auf dem er alle Apps verwalten kann, die die Berechtigung angefordert haben.
CHANGE_TEXT_TOASTS_IN_THE_SYSTEM
Änderungs-ID: 147798919
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Text-Toasts werden jetzt von der SystemUI und nicht mehr in der App gerendert. Dadurch wird verhindert, dass Apps die Einschränkungen für das Posten benutzerdefinierter Pop-ups im Hintergrund umgehen.
DEFAULT_SCOPED_STORAGE
Änderungs-ID: 149924527
Standardstatus: Für alle Apps aktiviert.
Alle Apps, die auf Android 11 ausgerichtet sind, verwenden jetzt standardmäßig eingeschränkten Speicher und können den begrenzten Speicher nicht mehr deaktivieren.
Sie können Ihre App jedoch ohne beschränkten Speicher unabhängig von der SDK-Zielversion und den Manifest-Flag-Werten Ihrer App testen. Deaktivieren Sie dazu diese Änderung.
Weitere Informationen zu den Änderungen am Speicher mit Begrenzung in Android 11 finden Sie auf der Seite zu den Änderungen am Android-Speicher in Android 11 im Abschnitt Speicher mit Begrenzung.
EMPTY_INTENT_ACTION_CATEGORY
Änderungs-ID: 151163173
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Apps, die auf Android 11 ausgerichtet sind, gibt das System jetzt einen Fehler aus, wenn action
oder category
eines Intent-Filters ein leerer String ist. Aufgrund eines Fehlers auf der Plattform vor Android 11 konnte dieser Fall ohne Fehler weitergeleitet werden. Dies gilt nicht für den Fall, dass das Attribut null oder fehlt, da in diesem Fall immer ein Fehler auftritt.
FILTER_APPLICATION_QUERY
Änderungs-ID: 135549675
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Apps müssen jetzt die Pakete und Intents angeben, die sie verwenden möchten, bevor sie Details zu anderen Apps auf einem Gerät abrufen können. Solche Erklärungen müssen im Manifest der App mit dem <queries>
-Tag erfolgen.
Weitere Informationen dazu, wie du in Android 11 andere installierte Apps abfragen und mit ihnen interagieren kannst, findest du auf der Datenschutzseite zur Paketsichtbarkeit.
FORCE_ENABLE_SCOPED_STORAGE
Änderungs-ID: Wert: 132649864
Standardstatus: Deaktiviert für alle Apps.
Alle Apps, die auf Android 11 ausgerichtet sind, verwenden jetzt standardmäßig den speicherortspezifischen Speicher. Die Deaktivierung des speicherortspezifischen Speichers ist nicht mehr möglich.
Wenn Ihre App jedoch weiterhin auf Android 10 (API-Level 29) oder niedriger ausgerichtet ist, können Sie sie mit beschränktem Speicherplatz testen, unabhängig von der Ziel-SDK-Version und den Manifest-Flag-Werten Ihrer App. Aktivieren Sie dazu einfach diese Änderung.
Weitere Informationen zu den Änderungen am begrenzten Speicher in Android 11 finden Sie im Abschnitt Begrenzter Speicher auf der Seite zu den Änderungen am Android-Speicher in Android 11.
GET_DATA_CONNECTION_STATE_R_VERSION
Änderungs-ID: 148535736
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
So prüfen Sie die SDK-Version für PreciseDataConnectionState#getDataConnectionState
.
GET_DATA_STATE_R_VERSION
Änderungs-ID: 148534348
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
So prüfen Sie die SDK-Version für getDataState()
.
GET_PROVIDER_SECURITY_EXCEPTIONS
Änderungs-ID: 150935354
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind, werden keine Sicherheitsausnahmen mehr geworfen.
getProvider(String)
GET_TARGET_SDK_VERSION_CODE_CHANGE
Änderungs-ID: 145147528
Standardstatus: Aktiviert für Apps, die auf Android 10 (API-Level 29) oder höher ausgerichtet sind.
So prüfen Sie die SDK-Version für die SmsManager.sendResolverResult()
-Methode:
GWP_ASAN
Änderungs-ID: 135634846
Standardstatus: Deaktiviert für alle Apps.
Aktiviert die Stichprobenerhebung von Fehlern im nativen Arbeitsspeicher in Apps.
Weitere Informationen zu dieser Änderung finden Sie im GWP-ASan-Leitfaden.
HIDE_MAXTARGETSDK_P_HIDDEN_APIS
Änderungs-ID: 149997251
Standardstatus: Aktiviert für Apps, die auf Android 10 (API-Level 29) oder höher ausgerichtet sind.
Bei Apps, die auf Android 10 (API-Level 29) oder höher ausgerichtet sind, wird der Zugriff auf alle nicht SDK-spezifischen Schnittstellen entfernt, die Teil der max-target-p
(greylist-max-p
)-Liste für Android 10 (API-Level 29) sind.
HIDE_MAXTARGETSDK_Q_HIDDEN_APIS
Änderungs-ID: 149994052
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind, wird der Zugriff auf alle nicht SDK-spezifischen Schnittstellen entfernt, die Teil der max-target-q
(greylist-max-q
)-Liste für Android 11 (API-Level 30) sind.
Weitere Informationen zu dieser Änderung finden Sie unter Nicht-SDK-Schnittstellen, die jetzt in Android 11 blockiert sind.
LISTEN_CODE_CHANGE
Änderungs-ID: 147600208
Standardstatus: Aktiviert für Apps, die auf Android 10 (API-Level 29) oder höher ausgerichtet sind.
So prüfen Sie die SDK-Version für TelephonyManager.listen(PhoneStateListener,
int)
:
MISSING_APP_TAG
Änderungs-ID: 150776642
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Apps, die auf Android 11 ausgerichtet sind, wird jetzt ein Fehler ausgegeben, wenn in der Manifestdatei einer App das application
- oder instrumentation
-Tag fehlt.
NATIVE_HEAP_POINTER_TAGGING
Änderungs-ID: 135754954
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Apps, die auf Android 11 ausgerichtet sind, haben native Heap-Zuweisungen jetzt ein Tag mit einem Wert ungleich 0 im höchstwertigen Byte.
Weitere Informationen finden Sie unter Heap-Pointer-Tagging.
PHONE_STATE_LISTENER_LIMIT_CHANGE_ID
Änderungs-ID: 150880553
Standardstatus: Aktiviert für alle Apps.
Bei Apps, die auf Android 11 ausgerichtet sind, ist die Anzahl der PhoneStateListener
-Objekte, die ein Prozess über TelephonyManager.listen(PhoneStateListener, int)
registrieren kann, jetzt begrenzt.
Die Standardbegrenzung ist 50. Sie kann durch Updates der Remote-Gerätekonfiguration geändert werden.
Dieses Limit wird mit einer IllegalStateException
erzwungen, die von TelephonyManager.listen(PhoneStateListener, int)
geworfen wird, wenn der betreffende Prozess versucht, einen zu vielen Listener zu registrieren.
PREVENT_META_REFLECTION_BLACKLIST_ACCESS
Änderungs-ID: 142365358
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Apps, die auf Android 11 ausgerichtet sind, können nicht mehr eine zusätzliche Reflexionsebene verwenden, um auf eingeschränkte Nicht-SDK-Schnittstellen zuzugreifen.
PROZESS-CAPABILITY_CHANGE_ID
Änderungs-ID: 136274596
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Für Apps, die auf Android 11 ausgerichtet sind, kann jetzt das Flag Context.BIND_INCLUDE_CAPABILITIES
verwendet werden, um Funktionen während der Nutzung vom Clientprozess an einen gebundenen Dienst zu übergeben.
REMOVE_ANDROID_TEST_BASE
Änderungs-ID: 133396946
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Bei Apps, die auf Android 11 ausgerichtet sind, wurde die android.test.base
-Bibliothek entfernt, wenn die App nicht von android.test.runner
abhängig ist (da sie von Klassen aus der android.test.base
-Bibliothek abhängig ist).
REQUEST_ACCESSIBILITY_BUTTON_CHANGE
Änderungs-ID: 136293963
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Für Bedienungshilfen, die auf Android 11 ausgerichtet sind, muss jetzt das Flag FLAG_REQUEST_ACCESSIBILITY_BUTTON
in der Metadatendatei des Bedienungshilfendiensts angegeben werden.
Andernfalls wird das Flag ignoriert.
Weitere Informationen zu dieser Änderung finden Sie unter Verwendung der Schaltfläche „Bedienungshilfen“ in der Metadatendatei angeben.
RESSOURCEN_ARSC_KOMPRESSIERT
Änderungs-ID: 132742131
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Apps, die auf Android 11 (API-Level 30) ausgerichtet sind, können nicht installiert werden, wenn sie eine komprimierte resources.arsc
-Datei enthalten oder diese Datei nicht auf eine 4-Byte-Grenze ausgerichtet ist.
Weitere Informationen zu dieser Änderung finden Sie unter Komprimierte Ressourcendateien.
RESTRICT_STORAGE_ACCESS_FRAMEWORK
Änderungs-ID: 141600225
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Wenn Ihre App auf Android 11 ausgerichtet ist und das Storage Access Framework (SAF) verwendet, können Sie mit den Intent-Aktionen ACTION_OPEN_DOCUMENT
und ACTION_OPEN_DOCUMENT_TREE
nicht mehr auf bestimmte Verzeichnisse zugreifen. Weitere Informationen zu diesen Änderungen finden Sie auf der Seite zu den Datenschutzaktualisierungen im Zusammenhang mit dem Speicher in Android 11 im Abschnitt Einschränkungen für den Dokumentzugriff.
SELINUX_LATEST_CHANGES
Änderungs-ID: 143539591
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Durch diese Änderung wird der Zugriff von Apps auf die SELinux-Domain „nicht vertrauenswürdige_app_R-targetSDk“ eingeschränkt.
Dies ist eine der grundlegenden Änderungen im Kompatibilitätsframework, die es Apps ermöglicht, andere Änderungen umzuschalten, die durch targetSdkVersion
festgelegt sind, ohne die targetSDKVersion
der App zu ändern. Aus diesem Grund sollten Sie diese Änderung für eine App, die auf Android 11 ausgerichtet ist, nicht deaktivieren. Andernfalls funktioniert die App nicht.
Diese Änderung hat keine Auswirkungen auf Apps, die eine gemeinsame Nutzer-ID verwenden.
THROW_SICHERHEIT_AUSNAHMEN
Änderungs-ID: 147340954
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Vor Android 11 wurde SecurityException
nur von setEnabled
APIs bei einem Berechtigungsfehler geworfen. In Android 11 gilt dies nicht mehr und ein SecurityException
kann aus verschiedenen Gründen ausgelöst werden, von denen keiner dem Aufrufer angezeigt wird.
Wenn für eine App, die nicht auf Android 11 ausgerichtet ist, ein Fehler bei der Legacy-Berechtigung oder bei der Erzwingung der Akteur auftritt, wird die Ausnahme in ein IllegalStateException
-Element umgewandelt, das bereits vor Android 11 in der Quelle vorhanden war. So bleibt das vorhandene API-Verhalten erhalten.
USE_SET_LOCATION_ENABLED
Änderungs-ID: 117835097
Standardstatus: Aktiviert für Apps, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind.
Für Administrator-Apps, die auf Android 11 ausgerichtet sind, kann die eingestellte Einstellung Settings.Secure.LOCATION_MODE
nicht mehr mit DevicePolicyManager.setSecureSetting(ComponentName, String, String)
geändert werden. Stattdessen sollte DevicePolicyManager.setLocationEnabled(ComponentName, boolean)
verwendet werden.