Zeitübersicht

Auf dieser Seite wird beschrieben, wie die Zeit- und Zeitzonenerkennung auf Android funktioniert. Dazu gehören die automatische Erkennung von Uhrzeit und Zeitzonen durch Android, Konfigurationsoptionen für Gerätehersteller und Informationen zu Tests.

Uhrzeit und Zeitzonen

Um die Ortszeit eines Nutzers zu ermitteln, die an Orten wie der Statusleiste angezeigt wird, überwacht Android zwei miteinander verbundene, aber unabhängige Status:

  • Die aktuelle Unix-Epochenzeit
  • Aktuelle Zeitzone

Die aktuelle Unix-Epochenzeit und die aktuelle Zeitzone sind geräteweite Status, d. h., sie werden von allen Nutzern eines Geräts gemeinsam verwendet.

Die aktuelle Unix-Epochenzeit ist kein fester Wert. Es wird automatisch aktualisiert, um den Zeitverlauf widerzuspiegeln. Neben dem normalen Zeitablauf wird die aktuelle Unix-Epochenzeit eines Geräts angepasst, wenn sie als falsch erkannt wird, z. B. nachdem der Strom für das Gerät abgeschaltet wurde.

Die aktuelle Zeitzone bestimmt die Anpassung, die bei der Umwandlung der aktuellen Unix-Epochenzeit in eine lokale Zeit vorgenommen werden muss. Beispiel: Im Sommer in Los Angeles zieht das Gerät 7 Stunden von der aktuellen Unix-Epochenzeit ab, im Winter 8 Stunden.

Zur Unterstützung dieser Berechnungen der Ortszeit haben alle Android-Geräte eine Datenbank mit allen globalen Zeitzonenregeln. Weitere Informationen zu Zeitzonenregeln finden Sie unter Zeitzonenregeln.

Wenn ein Nutzer an einen neuen Ort reist, für den eine andere Zeitzone gilt, muss die aktuelle Unix-Epochenzeit nicht angepasst werden. Der Nutzer möchte jedoch in der Regel die Ortszeit sehen, nicht die Zeit an seinem vorherigen Standort. Wenn Sie die aktuelle Zeitzone ändern, wird der aktuelle Unix-Epochenzeit-Versatz angewendet, um die richtige Ortszeit für den neuen Standort anzuzeigen.

Mit AOSP können Nutzer unabhängig über die folgenden Mechanismen festlegen, ob die Uhrzeit und Zeitzone automatisch für sie festgelegt werden.

  • Automatische Zeiterkennung: Damit wird sichergestellt, dass auf dem Gerät die aktuelle Unix-Epochenzeit eingestellt ist.
  • Automatische Zeitzonenerkennung: Damit wird sichergestellt, dass auf dem Gerät die aktuelle Zeitzone eingestellt ist.

Automatische Zeiterkennung

In diesem Abschnitt finden Sie eine Übersicht über den time_detector-Dienst, mit dem die automatische Zeiterkennung, Nutzereinstellungen, Konfigurationsoptionen und Testdetails verwaltet werden.

Der Dienst „time_detector“

Der Dienst time_detector ist auf Geräten mit Android 10 oder höher verfügbar und verwaltet die automatische Zeiterkennung. Wenn die automatische Zeiterkennung aktiviert ist, passt er die aktuelle Unix-Epochenzeit des Geräts bei Bedarf an.

Der Dienst time_detector hat immer einen von zwei Status: unbestimmt oder bestimmt. Der bestimmte oder unbestimmte Status des Dienstes wird anhand von Zeitvorschlägen bestimmt, die er aus verschiedenen Quellen erhält.

Wenn der time_detector-Dienst sicher ist, d. h., er einen Vorschlag mit Informationen zur Unix-Epoche erhalten hat, wird die aktuelle Unix-Epoche überschrieben, wenn sich der Zeitvorschlag von der aktuellen Unix-Epoche unterscheidet.

Wenn time_detector ungewiss ist, wird die aktuelle Uhrzeit nicht überschrieben. Der unbestimmte Status bedeutet in der Regel, dass der time_detector-Dienst keine Zeitvorschläge erhalten hat. Der time_detector-Dienst ist auch unsicher, wenn die empfangenen Vorschläge zu alt sind, um verwendet zu werden. Das Alter der Vorschläge wird berücksichtigt, da Anpassungen anhand alter Unix-Epochenzeitvorschläge auf der Echtzeituhr des Geräts basieren, die über einen längeren Zeitraum hinweg ungenau sein kann.

Um die aktuelle Unix-Epochenzeit automatisch festzulegen, stehen einem Gerät verschiedene Quellen zur Verfügung. Diese werden in diesem Dokument als Ursprung bezeichnet. Der Dienst time_detector behandelt Sequenzen von Vorschlägen basierend auf ihrem Ursprung als unterschiedlich.

Der time_detector-Dienst ist zustandsabhängig, d. h., er speichert den jeweils letzten Vorschlag, der von jeder Quelle gemacht wurde. Neue Vorschläge für time_detector werden gemacht, wenn für einen Ursprung aktuellere Informationen zur Unix-Epochenzeit verfügbar sind. Der Dienst time_detector bewertet neue und vorhandene Vorschläge neu und aktualisiert den Gerätestatus, wenn Vorschläge empfangen werden.

Obwohl die UTC-Zeit international vereinbart ist, gibt es verschiedene Gründe, warum die Ermittlung der aktuellen Unix-Epochenzeit auf einem Android-Gerät nicht immer einfach ist:

  • Die Unix-Epochenzeit ist ein etwas anderes Zeitsystem als die UTC-Zeit. Für die Umwandlung zwischen den beiden Zeitsystemen ist es erforderlich zu wissen, wann Schaltsekunden auftreten und wie sie von den Ursprüngen verarbeitet werden.
  • Ursprünge sind möglicherweise nur zu bestimmten Zeiten oder unter bestimmten Umständen verfügbar. Wenn für den Ursprung beispielsweise eine Netzwerkverbindung erforderlich ist, ist er möglicherweise nur verfügbar, wenn das Gerät mit dem Internet verbunden ist.
  • Die Quellen sind möglicherweise ungenau oder unpräzise oder enthalten Fehler. Wenn ein Mobilfunkmasten beispielsweise die „Universalzeit“ nicht richtig erfasst, kann der Telefonie-Ursprung fehlerhafte Zeitvorschläge liefern.
  • Beim Abrufen der Unixzeit können Ungenauigkeiten auftreten. Beispielsweise kann eine Netzwerkverzögerung, Pufferung oder Prozessplanung dazu führen, dass die Unix-Epochenzeit ungenau ist.
  • Die Referenzuhr, mit der ein Vorschlag anhand der seit dem Empfang verstrichenen Zeit angepasst wird, ist möglicherweise ungenau.

In AOSP sind standardmäßig zwei Hauptquellen für die Zeiterkennung konfiguriert:

  • Netzwerk:Verwendet NTP-Zeitserver (Network Time Protocol).
  • Telefonie:Verwendet Telefonsignale für Netzwerkidentität und Zeitzone (Network Identity and Time Zone, NITZ).

Sowohl Telefonie- als auch Netzwerkquellen erfordern eine Verbindung zu externen Netzwerken, die nicht immer verfügbar sind.

Ab Android 12 werden auch die folgenden Ursprünge unterstützt, die standardmäßig nicht für die Verwendung konfiguriert sind:

  • GNSS:Der GPS-Standortanbieter wird verwendet, um eine Uhrzeit von einer GNSS-Quelle abzurufen.
  • Extern:Generischer Ursprung, mit dem Gerätehersteller ihre eigene Quelle für die Unix-Epochenzeit einbinden können.

Zeiteinstellungen

Nutzer können die automatische Zeiterkennung in den AOSP-Einstellungen unter System > Datum und Uhrzeit aktivieren.

Automatische Zeiterkennung in den Einstellungen

Abbildung 1: Automatische Zeiterkennung in den Einstellungen

In der folgenden Tabelle werden die Einstellungen für die Zeiterkennung in der AOSP-Einstellungs-App beschrieben.

*Unter Android 11 und niedriger heißt diese Einstellung Vom Netzwerk bereitgestellte Zeit verwenden.

Speicherort der AOSP-Einstellungen Name der AOSP-Einstellungen Aufgabenstellung Verhalten
System > Datum und Uhrzeit Zeit automatisch einstellen* Alle Nutzer

Ein Schalter.

Wenn diese Option aktiviert ist, ist das Gerät für die Erkennung der aktuellen Unix-Epochenzeit verantwortlich. Wenn die Option deaktiviert ist, können Nutzer die Uhrzeit des Geräts manuell einstellen.

Wenn der Nutzer die Uhrzeit manuell eingibt, gibt er seine Ortszeit ein, nicht die Unix-Epochenzeit. Die aktuelle Unix-Epochenzeit wird berechnet, indem anhand der aktuellen Zeitzone eine Unix-Epochenzeit abgeleitet wird.

Konfiguration

Gerätehersteller können den time_detector-Dienst auf verschiedene Arten konfigurieren, z. B. welche Quellen verwendet werden sollen und wie die Signale von ihnen priorisiert werden sollen.

Priorisierung von Ursprüngen

Ab Android 12 können Gerätehersteller die Konfigurationsdatei core/res/res/values/config.xml ändern, um anzugeben, welche Zeitquellen in die automatische Zeiterkennung einbezogen werden sollen, und die Priorität, mit der diese Quellen von time_detector berücksichtigt werden.

Auf Geräten mit Android 11 oder niedriger ist die Priorität der Quelle auf ["telephony", "network"] hartcodiert. Das bedeutet, dass Vorschläge für Telefonanrufe vor Netzwerkvorschlägen priorisiert werden.

Die Standard-AOSP-Konfiguration sieht so aus:

<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list
     take precedence over lower ones.
     See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
<string-array name="config_autoTimeSourcesPriority">
    <item>network</item>
    <item>telephony</item>
</string-array>

In Android 12 sind Netzwerk- und Telefonievorschläge als Standardquellen konfiguriert. Vorschläge für die Netzwerkzeit haben Vorrang vor Vorschlägen für die Telefonzeit. Gerätehersteller können die Reihenfolge der Ursprünge ändern, um zum Verhalten in Android 11 oder niedriger zurückzukehren, bei dem der Telefonie eine höhere Priorität eingeräumt wird.

Wenn der gültige Vorschlag mit der höchsten Priorität innerhalb weniger Sekunden mit der aktuellen Systemuhrzeit des Geräts übereinstimmt, wird die Gerätezeit nicht geändert. So wird verhindert, dass Arbeit für installierte Apps anfällt, die auf die ACTION_TIME_CHANGED-Intention achten.

Zulässige Ursprungswerte:

Zulässige Zeiträume

In Android 14 wird eine Obergrenze für Zeitvorschläge eingeführt, die vom time_detector-Dienst empfangen werden. Wenn das Gerät 32-Bit-Prozesse unterstützt, legt das Framework eine Obergrenze für die Zeit fest, um zu verhindern, dass das Gerät einen Zeitvorschlag verwendet, der das Y2038-Problem auslösen könnte.

In Android 12 wurde eine kürzere zeitliche Beschränkung eingeführt, mit der Zeitvorschläge validiert werden, die vom time_detector-Dienst empfangen werden. Der untere zeitgebundene Wert, der für automatische Vorschläge verwendet wird, wird anhand des Build-Zeitstempels festgelegt. Dabei wird davon ausgegangen, dass ein gültiger Zeitpunkt nicht vor dem Erstellen des System-Images des Geräts liegen kann. Wenn ein Zeitvorschlag vor der unteren Zeitgrenze liegt, verwirft der time_detector-Dienst den Vorschlag, da er nicht gültig sein kann, wenn der Build-Zeitstempel korrekt ist.

Auf Geräten mit Android 11 oder niedriger werden vom time_detector-Dienst keine Vorschläge für die Unix-Epochenzeit validiert.

Zeit für Debugging und Tests

In diesem Abschnitt finden Sie Informationen zum Debuggen und Testen des Verhaltens des time_detector-Dienstes und anderer Komponenten, die für alle Ursprünge freigegeben sind.

Mit dem Dienst „time_detector“ interagieren

So rufen Sie die Konfiguration und den Status des Dienstes time_detector auf:time_detector

adb shell cmd time_detector dump

Weitere Befehle zur Fehlerbehebung und zum Testen der Zeitzonenerkennung:

adb shell cmd time_detector help

In der Hilfeausgabe werden auch die Diensteigenschaften „device_config“ beschrieben, mit denen sich das Verhalten von time_detector für Tests oder in der Produktion beeinflussen lässt. Weitere Informationen finden Sie unter Geräte mit dem Dienst „device_config“ konfigurieren.

Um die automatische Zeiterkennung zu validieren, müssen Tester wissen, welche Ursprünge der time_detector-Dienst verwendet. Im folgenden Beispiel wird die Ausgabe des Befehls adb shell cmd time_detector dump dargestellt. Die Informationen zum aktuellen Ursprung und Dienststatus sind fett formatiert:

$ adb shell cmd time_detector dump

TimeDetectorStrategy:
  mLastAutoSystemClockTimeSet=null
  mEnvironment.isAutoTimeDetectionEnabled()=true
  mEnvironment.elapsedRealtimeMillis()=23717241
  mEnvironment.systemClockMillis()=1626707861336
  mEnvironment.systemClockUpdateThresholdMillis()=2000
  mEnvironment.autoTimeLowerBound()=2021-07-19T07:48:05Z(1626680885000)
  mEnvironment.autoOriginPriorities()=[network,telephony]
  Time change log:
    ...
  Telephony suggestion history:
    ...
  Network suggestion history:
    ...
  Gnss suggestion history:
    ...
  External suggestion history:
    ...

Die Informationen können so interpretiert werden:

Key Wert
mEnvironment.isAutoTimeDetectionEnabled() Gibt an, ob die automatische Zeiterkennung aktiviert ist.
mEnvironment.autoTimeLowerBound() Die aktuelle Untergrenze, die zum Validieren von Zeitvorschlägen verwendet wird.
mEnvironment.autoOriginPriorities() Die verwendeten Ursprünge und die Prioritätsreihenfolge.

Im Protokoll für Zeitänderungen sind die Zeiten aufgeführt, zu denen der time_detector-Dienst die aktuelle Unix-Epochenzeit des Geräts geändert hat.

Im Vorschlagsverlauf sehen Sie, welche Vorschläge von welcher Quelle stammen.

Automatische Zeitzonenerkennung

In diesem Abschnitt erhalten Sie einen Überblick über den time_zone_detector-Dienst, der die automatische Zeitzonenerkennung, die Nutzereinstellungen, die Zeitzonenerkennung für Telefonie und Standort sowie Testdetails verwaltet.

Der Dienst „time_zone_detector“

Der Dienst time_zone_detector ist auf Geräten mit Android 11 oder höher vorhanden und verwaltet die automatische Zeitzonenerkennung. Wenn die automatische Zeitzonenerkennung aktiviert ist, passt die Funktion die aktuelle Zeitzone des Geräts nach Bedarf an.

Wenn die automatische Zeitzonenerkennung aktiviert ist, kann time_zone_detector einen von zwei Status haben: unbestimmt oder bestimmt.

Wenn der time_zone_detector-Dienst sich in einem bestimmten Status befindet, bedeutet das, dass der time_zone_detector-Dienst eindeutige Zeitzoneninformationen erhalten hat, die dazu führen können, dass die aktuelle Zeitzone überschrieben wird. Wenn der Status „Unsicher“ ist, wurden keine oder nur Informationen mit geringer Wahrscheinlichkeit empfangen. Die aktuelle Zeitzone wird also nicht überschrieben.

Zu den bestimmten Status des time_zone_detector-Dienstes können Zustände gehören, in denen time_zone_detector keine Zeitzoneninformationen verwenden kann oder in denen mehrere Zeitzonen zur Auswahl stehen. Diese Bundesstaaten sind:

  • Ein bestimmter Status ohne Zeitzonen wird eingegeben, wenn sich das Gerät an einem Ort ohne Zeitzone befindet, z. B. in internationalen Gewässern oder in einem umstrittenen Gebiet. Dieser Status ähnelt dem Status „Unsicher“, gibt aber an, dass time_zone_detector keine weiteren Maßnahmen ergreifen muss, um die Zeitzone zu ermitteln.
  • Ein bestimmter Bundesstaat mit mehreren Zeitzonen wird eingegeben, in dem es Unklarheiten oder Grenzbedingungen gibt. Wenn die aktuelle Zeitzone in diesem Zustand zu den Zeitzonen gehört, bei denen time_zone_detector sicher ist, dass sie zutrifft, bleibt sie unverändert. Andernfalls wird eine der verfügbaren Zeitzonen verwendet. Dadurch wird time_zone_detector ein gewisser Grad an „Stickiness“ verliehen, wenn der Nutzer seine Zeitzone zuvor manuell ausgewählt hat oder sich das Gerät einer Grenze nähert.

Der bestimmte oder unbestimmte Status des time_zone_detector-Dienstes wird anhand von Zeitzonenvorschlägen bestimmt, die von einem Algorithmus gesendet werden.

Im Allgemeinen gibt es zwei Arten von Vorschlägen, die den möglichen Status von time_zone_detector genau entsprechen: sicher und unsicher. Nachfolgend finden Sie Beispiele für Vorschlagstypen:

  • type = uncertain, zoneIds = []

    • Der Algorithmus kennt die Zeitzone nicht.
  • type = certain, zoneIds = ["Europe/London"]

    • Der Algorithmus ist sich sicher, dass die Zone „Europa/London“ ist.
  • type = certain, zoneIds = []`

    • Der Algorithmus ist sicher, aber dem aktuellen Standort ist keine Zonen-ID zugewiesen.
  • type = certain, zoneIds = ["America/Denver", "America/Phoenix"]

    • Der Algorithmus ist sich sicher, dass die Antwort eine von zwei Zonen ist, kann aber nicht zwischen „America/Denver“ und „America/Phoenix“ wählen.

Der time_zone_detector-Dienst behandelt Sequenzen von Vorschlägen basierend auf seinem Algorithmus als unterschiedlich. Je nach Algorithmus können Vorschläge auch Metadaten enthalten, die angeben, wie sicher der Algorithmus ist.

Der time_zone_detector-Dienst ist zustandsabhängig, d. h., er speichert den jeweils letzten Vorschlag jedes Algorithmus. Neue Vorschläge werden an den time_zone_detector-Dienst gesendet, wenn ein vorheriger Vorschlag nicht mehr korrekt ist, d. h. wenn ein Algorithmus jetzt einen anderen Vorschlag hat oder die Zeitzone nicht mehr erkennen kann. Der Dienst time_zone_detector bewertet neue und vorhandene Vorschläge neu und aktualisiert den Gerätestatus, wenn Vorschläge empfangen werden.

Android unterstützt zwei Algorithmen für die Zeitzonenerkennung:

  • Telefonie
  • Standort

Der time_zone_detector-Dienst verwendet in der Regel einen einzelnen Algorithmus, um die Zeitzone zu ermitteln. Wenn der Standortalgorithmus auf einem Gerät unterstützt wird, wird der vom Gerät verwendete Algorithmus anhand der vom Nutzer konfigurierten Zeitzoneneinstellungen bestimmt. Wenn der verwendete Algorithmus sich nicht sicher ist, welche Zeitzone verwendet werden soll, werden in time_zone_detector in der Regel keine Vorschläge eines anderen Algorithmus verwendet. Vorschläge, die mit nicht verwendeten Algorithmen verknüpft sind, können von time_zone_detector im Arbeitsspeicher gehalten werden. Sie werden jedoch nur verwendet, wenn sich der Algorithmus ändert. Wenn der Nutzer die Einstellungen für die automatische Zeitzonenerkennung ändert und der Algorithmus sich ändert, wird der jeweils aktuelle Vorschlag für den neuen Algorithmus verwendet.

Weitere Informationen dazu, wie mehrere Algorithmen zur Bestimmung der Zeitzone verwendet werden, finden Sie unter Fallback-Modus für die Telefonie.

Telefonie-Fallback-Modus

Auf Geräten mit Android 13 und höher unterstützt der time_zone_detector-Dienst den Fallback-Modus für die Telefonie. In diesem Modus kann Android vorübergehend Vorschläge zur Telefonieerkennung verwenden, wenn die Zeitzone nicht über die Standortermittlung ermittelt werden kann oder die Zeitzone über die Standortermittlung länger als über die Telefonieerkennung ermittelt werden kann.

Der Telefonie-Fallback-Modus gilt für Geräte, auf denen sowohl Telefonie als auch Standortermittlung unterstützt werden und auf denen der Nutzer in den Zeitzoneneinstellungen die Option Standort verwenden, um die Zeitzone festzulegen aktiviert hat. Der Modus wird automatisch aktiviert, wenn ein Gerät neu gestartet wird und der Flugmodus deaktiviert ist.

Unter Android 14 und höher kann der Telefonie-Fallback über die LTZP-Statusmelde-APIs ausgelöst werden. Das bedeutet, dass der Telefonie-Fallback-Modus ausgelöst wird, wenn ein LTZP meldet, dass es sich um eine unsichere und eingeschränkte Umgebung handelt, in der die Standort- oder Zeitzone nicht erkannt werden kann.

Im Telefonie-Fallback-Modus verwendet der time_zone_detector-Dienst Telefonievorschläge, als wäre die Standorterkennung deaktiviert, bis der Standortalgorithmus einen bestimmten Vorschlag macht. Nachdem ein bestimmter Vorschlag eingegangen ist, wird der Telefonie-Fallback-Modus deaktiviert und es werden ausschließlich Standortvorschläge verwendet.

Konfigurationsdetails für den Telefonie-Fallback-Modus finden Sie unter Konfiguration der Zeitzonenerkennung.

Zeitzoneneinstellungen

Nutzer können die Einstellungen für die automatische Zeitzonenerkennung in den AOSP-Einstellungen aktivieren und konfigurieren.

Automatische Zeitzonenerkennung in den Einstellungen

Abbildung 2: Automatische Zeitzonenerkennung in den Einstellungen

In der folgenden Tabelle werden die Einstellungen für die Zeitzonenerkennung in der AOSP-Einstellungs-App beschrieben.

*Unter Android 11 und niedriger lautet diese Einstellung Vom Netzwerk angegebene Zeitzone verwenden.

Speicherort der AOSP-Einstellungen Name der AOSP-Einstellungen Aufgabenstellung Verhalten
System > Datum und Uhrzeit Zeitzone automatisch einstellen* Alle Nutzer

Ein Schalter.

Wenn diese Option aktiviert ist, ist das Gerät für die Erkennung der aktuellen Zeitzone verantwortlich. Wenn die Option deaktiviert ist, können Nutzer die Zeitzone des Geräts manuell festlegen.

System > Datum und Uhrzeit Standort verwenden, um die Zeitzone festzulegen Aktueller Nutzer

Ein Schalter.

Verfügbar ab Android 12. Diese Option wird nur angezeigt, wenn die Zeitzonenerkennung anhand des Standorts auf dem Gerät unterstützt wird.

Informationen zu den Änderungen in Android 14 finden Sie unter Geräte, die nur die Zeitzonenerkennung über den Standort unterstützen.

deinen Standort zugegriffen haben Standort verwenden Aktueller Nutzer

Ein Schalter.

Ermöglicht oder verhindert die allgemeine Verwendung des Standorts des Geräts. Der Wert ist relevant, wenn die Zeitzonenerkennung anhand des Standorts auf dem Gerät unterstützt wird.

Im Folgenden finden Sie einen Überblick über das Geräteverhalten bei der Zeitzonenerkennung unter Berücksichtigung der vom Nutzer ausgewählten Einstellungen:

  • [Datum und Uhrzeit] Zeitzone automatisch einstellen:AUS

    • Der Nutzer muss die Zeitzone manuell auswählen.
  • [Datum und Uhrzeit] Zeitzone automatisch einstellen:AKTIVIERT

    • [Standort] Standort verwenden:AUS

      • Die Zeitzone wird anhand von Telefonsignalen ermittelt.
    • [Standort] Standort verwenden:AN

      • [Datum und Uhrzeit] Zeitzone anhand des Standorts festlegen:AKTIVIERT

        • Der Standort wird verwendet, um die Zeitzone zu ermitteln.
      • [Datum und Uhrzeit] Zeitzone anhand des Standorts festlegen:AUS

        • Die Zeitzone wird anhand von Telefonsignalen ermittelt.

Geräte mit mehreren Nutzern

Da einige der beteiligten Einstellungen auf den aktuellen Nutzer beschränkt sind, kann sich das Verhalten der Zeitzonenerkennung eines Geräts ändern, wenn sich der aktuelle Nutzer auf einem Android-Gerät mit mehreren Nutzern ändert.

Die Option Standort verwenden, um die Zeitzone festzulegen gilt nur für den aktuellen Nutzer und ist nicht durch Geräterichtlinien eingeschränkt. Nutzer können den Wert also jederzeit ändern, auch wenn die Option Zeitzone automatisch festlegen deaktiviert ist oder andere Einstellungen für Uhrzeit oder Zeitzone durch den Device Policy Controller eingeschränkt sind.

 Geräte, die nur den Algorithmus zur Zeitzonenerkennung anhand des Standorts unterstützen

In diesem Abschnitt wird das Verhalten auf Geräten beschrieben, die nur den Standortalgorithmus unterstützen.

  • Android 14 oder höher

    • Die Option Standort verwenden wird Nutzern in der AOSP-Einstellungs-App nicht angezeigt und das Gerät verhält sich so, als wäre die Option Standort verwenden aktiviert.
    • Der Wert der SettingsProvider-Einstellung auf Nutzerebenelocation_time_zone_detection_enabled wird ignoriert. Dieser Wert gibt die Einstellung des Nutzers auf anderen Gerätetypen an.
  • Android 12 oder Android 13

    • Die Option Standort verwenden ist für Nutzer in der AOSP-Einstellungs-App sichtbar und kann von ihnen deaktiviert werden. Wenn die Option deaktiviert ist, wird die Zeitzone nicht automatisch vom Gerät erkannt.

Verhalten beim Wechsel von und zu automatischer Erkennung

Wenn der Nutzer die Zeitzonenerkennung von manuell auf automatisch umstellt, ist time_zone_detector möglicherweise bereits über die aktuelle Zeitzone informiert. Wenn ja, wird die Zeitzone des Geräts möglicherweise gleichzeitig geändert, wenn der Nutzer die automatische Erkennung aktiviert, damit sie mit der Meinung des time_zone_detector-Dienstes übereinstimmt.

Wenn der Nutzer eine Änderung in den Einstellungen vornimmt, die zu einer Änderung des aktuellen Algorithmus des time_zone_detector-Dienstes führt, hat time_zone_detector möglicherweise bereits Vorschläge für den neuen Algorithmus erhalten. Daher wird die Uhrzeit des Geräts möglicherweise sofort an die Meinung des time_zone_detector-Dienstes angepasst.

Zeitzonenerkennung für Telefonie

Bei der Zeitzonenerkennung für die Telefonie wird die aktuelle Zeitzone anhand von Telefonsignalen ermittelt. Weitere Informationen finden Sie unter Zeitzonenerkennung für Telefonie.

Zeitzone anhand des Standorts bestimmen

Die Zeitzonenerkennung anhand des Standorts ist unter Android 12 oder höher verfügbar. Dies ist eine optionale Funktion zur automatischen Zeitzonenerkennung, mit der Geräte ihren Standort verwenden können, um die aktuelle Zeitzone zu ermitteln.

Der location_time_zone_manager-Dienst, der in Android 12 eingeführt wurde, wird auf dem Systemserver ausgeführt und enthält den Code, der für das Einreichen von Vorschlägen für Standortalgorithmen an den time_zone_detector-Dienst verantwortlich ist. Weitere Informationen finden Sie unter Zeitzonenerkennung.

Hinweise zur Akzeptanz von Funktionen

In diesem Abschnitt werden Aspekte der Funktion zur Bestimmung der Zeitzone anhand des Standorts beschrieben, damit Gerätehersteller entscheiden können, ob sie die Funktion auf einem Gerät verwenden möchten.

Telefonie und Standorterkennung vergleichen

In der folgenden Tabelle werden die Vor- und Nachteile der Verwendung von Standort- statt Telefoniesignalen für die Zeitzonenerkennung verglichen.

Telefonerkennung Standorterkennung
Richtigkeit Das variiert je nach Land.

Abhängig von der MCC, der Richtigkeit und Verfügbarkeit der NITZ.
Abhängig von der Funktionskonfiguration oder den Plug-in-Komponenten.

Die Richtigkeit variiert in der Regel je nach:
  • Genauigkeit und Regelmäßigkeit des Standortanbieters
  • Die Qualität der Zeitzonenkartendaten.
Aktualisierbarkeit Die Telefonerkennung basiert auf Dateien im aktualisierbaren Zeitzonendatenmodul (com.android.tzdata APEX). Abhängig von der Funktionskonfiguration oder den Plug-in-Komponenten.

Die Aktualisierbarkeit hängt in der Regel davon ab, ob das Gerät Zeitzonenzuordnungsdaten vom Server oder vom Client verwendet.

Hinweis: Zeitzonenkartendaten sind nicht im Modul „Zeitzonendaten“ enthalten, mit dem die Android-Kopie der TZDB und andere Zeitzoneninformationen aktualisiert werden.

Außerdem müssen die Gerätehersteller die Versionskonsistenz zwischen den Zeitzonenregeln und den Zeitzonenzuordnungsdaten berücksichtigen.
Stromverbrauch Kein oder geringer Energieverbrauch Das hängt von den Standorteinstellungen des Nutzers, den verwendeten Plug-ins und in der Regel davon ab, welche anderen Apps den Standort anfordern.
Verfügbarkeit Nur Telefongeräte. In der Regel ist eine funktionierende SIM-Karte erforderlich. Die Standorterkennung hängt von den verfügbaren Standortanbietern ab.
Datenschutz

Die bevorzugte Zeitzone eines Nutzers wird in der Regel durch seinen geografischen Standort bestimmt. Standortdaten sind sensible Daten. Nutzer könnten Bedenken haben, dass ihr Standort im Rahmen der Zeitzonenerkennung weitergegeben wird. Unabhängig von der Zeitzonenerkennung können alle auf einem Gerät ausgeführten Apps die aktuelle Zeitzone des Geräts lesen, ohne dass eine Android-Berechtigung erforderlich ist. Apps können anhand dieser Informationen einen ungefähren Standort des Geräts ableiten.

Die Zeitzonenerkennung kann passiv oder aktiv erfolgen:

  • Passiv: Etwas in der Umgebung des Geräts teilt dem Gerät die Zeitzone mit, die in dieser Umgebung verwendet werden soll.
  • Aktiv: Das Gerät muss die Zeitzone selbst ermitteln und holt sich dazu je nach Datenschutzeinstellungen und Einwilligung des Nutzers den Standort des Geräts ab. Es kann seinen Standort dann mit externen Diensten teilen. Weitere Informationen zum Datenschutz und zur Einwilligung von Nutzern finden Sie unten.

Die passive Erkennung, z. B. mit dem Telefoniealgorithmus, hat keine zusätzlichen Auswirkungen auf die Datensicherheit für Nutzer.

Bei der aktiven Erkennung, z. B. mit dem Standortalgorithmus, wird der Standort des Geräts ermittelt. Nutzer müssen dieser Ermittlung möglicherweise zustimmen. Der Standort kann über ein Netzwerk gesendet werden, um die Zeitzonen-ID zu ermitteln.

Der Ansatz von Android in Bezug auf den Datenschutz bei der Zeitzonenerkennung bietet Nutzern die Möglichkeit, Algorithmen, die normalerweise aktiv sind, einzeln zu deaktivieren. Außerdem wird im AOSP-Plattformcode nicht direkt mit dem Standort selbst umgegangen: Die Standorterkennung und die Zuordnung des Standorts zu Zeitzonen-IDs werden Plug-in-Komponenten überlassen, die von Geräteherstellern konfiguriert werden.

Weitere Informationen zu Funktionen zum Schutz der Nutzerdaten finden Sie unter Zeitzonenerkennung.

Konfiguration

Gerätehersteller können den time_zone_detector-Dienst konfigurieren, um sein Verhalten zu ändern. In diesem Abschnitt werden Konfigurationsoptionen für das allgemeine Verhalten des time_zone_detector-Dienstes beschrieben. Konfigurationsdetails für die Algorithmen zur Telefonie- und Zeitzonenerkennung finden Sie unter Zeitzone anhand der Telefonie bestimmen und Zeitzone anhand des Standorts bestimmen.

Die Basis-AOSP-Konfiguration befindet sich unter frameworks/base/core/res/res/values/config.xml.

Konfigurationsschlüssel AOSP-Wert Beschreibung
config_supportTelephonyTimeZoneFallback true Wenn true, verwendet time_zone_detector den Telefonie-Fallback-Modus. Diese Funktion ist ab Android 13 verfügbar.

 Standardverhalten des Geräts ändern

In AOSP ist die automatische Zeitzonenerkennung standardmäßig aktiviert und die Einstellung auto_time_zone ist auf true gesetzt. Wenn Sie die automatische Zeiterkennung standardmäßig deaktivieren möchten, setzen Sie den in frameworks/base/packages/SettingsProvider/res/values/defaults.xml definierten Wert von def_auto_time_zone auf false.

Wenn Sie eine Sicherung von einem anderen Gerät wiederherstellen, aktualisiert das Framework standardmäßig den Wert der Einstellung auto_time_zone. Wenn Sie dafür sorgen möchten, dass diese Einstellung nicht aus einer Sicherung wiederhergestellt wird, fügen Sie auto_time_zone in das in frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml definierte restore_blocked_global_settings-Array ein.

Debugging und Tests für Zeitzonen

In diesem Abschnitt finden Sie Informationen zum Beheben von Fehlern und zum Testen des Verhaltens des time_zone_detector-Dienstes und anderer Komponenten, die von allen Algorithmen gemeinsam genutzt werden.

Gerät mit dem Dienst „device_config“ konfigurieren

Der device_config-Dienst ist ein Mechanismus, der unter Android verwendet wird, um ein anpassbares Verhalten mithilfe von Werten zu konfigurieren, die in der Regel über proprietären Code (nicht AOSP) von einem Remote-Server abgerufen werden. Wenn Sie device_config-Werte für Tests verwenden, insbesondere bei langwierigen manuellen Tests, synchronisiert das Gerät möglicherweise die Flags. Dadurch werden die Flags zurückgesetzt und die für den Test festgelegten Werte gelöscht.

Unter Android 12 oder höher können Sie die Flag-Synchronisierung vorübergehend verhindern:

adb shell cmd device_config set_sync_disabled_for_tests persistent

So stellen Sie die Flaggensynchronisierung nach Tests wieder her:

adb shell cmd device_config set_sync_disabled_for_tests none

Starten Sie das Gerät nach der Wiederherstellung der Flaggensynchronisierung neu.

Verwenden Sie für weitere Informationen $ adb shell cmd device_config help.

Mit dem Dienst „time_zone_detector“ interagieren

So rufen Sie die time_zone_detector-Konfiguration und den Status des time_zone_detector-Dienstes auf:

adb shell cmd time_zone_detector dump

Weitere Befehle zur Fehlerbehebung und zum Testen der Zeitzonenerkennung:

adb shell cmd time_zone_detector help

In der Hilfeausgabe werden auch die device_config-Diensteigenschaften beschrieben, mit denen sich das Verhalten des time_zone_detector-Dienstes für Tests oder in der Produktion beeinflussen lässt. Weitere Informationen finden Sie unter Geräte mit dem Dienst „device_config“ konfigurieren.

Um die Zeitzonenerkennung zu validieren, müssen die Tester wissen, welchen Algorithmus time_zone_detector verwendet. Sie haben folgende Möglichkeiten, den aktuellen Algorithmus der time_zone_detector zu verstehen und zu beeinflussen:

  • Überprüfen Sie dies visuell in den Einstellungen. Weitere Informationen finden Sie unter Einstellungen für Zeitzonen.
  • Befehlszeile über adb verwenden:

    • Verwenden Sie adb shell cmd time_zone_detector dump, um den time_zone_detector-Status zu dumpen.
    • Verwenden Sie andere time_zone_detector-Befehle, um die Geräteeinstellungen zu ändern. Weitere Informationen finden Sie unter adb shell cmd time_zone_detector help.

Im folgenden Beispiel wird die Ausgabe des Befehls adb shell cmd time_zone_detector dump dargestellt. Die Informationen zum aktuellen Algorithmus und Dienststatus sind fett formatiert:

$ adb shell cmd time_zone_detector dump
TimeZoneDetectorStrategy:
  mEnvironment.getCurrentUserId()=0
  mEnvironment.getConfiguration(currentUserId)=ConfigurationInternal{mUserId=0, mUserConfigAllowed=true, mTelephonyDetectionSupported=true, mGeoDetectionSupported=true, mAutoDetectionEnabled=true, mLocationEnabled=true, mGeoDetectionEnabled=true}
  [Capabilities=TimeZoneCapabilitiesAndConfig{mCapabilities=TimeZoneDetectorCapabilities{mUserHandle=UserHandle{0}, mConfigureAutoDetectionEnabledCapability=40, mConfigureGeoDetectionEnabledCapability=40, mSuggestManualTimeZoneCapability=30}, mConfiguration=TimeZoneConfiguration{mBundle=Bundle[{geoDetectionEnabled=true, autoDetectionEnabled=true}]}}]
  mEnvironment.isDeviceTimeZoneInitialized()=true
  mEnvironment.getDeviceTimeZone()=Europe/London
  Time zone change log:
  Manual suggestion history:
...
  Geolocation suggestion history:
...
  Telephony suggestion history:
...

Die Informationen können so interpretiert werden:

Key Wert
mUserConfigAllowed Gibt an, ob der Nutzer durch den Device Policy Controller daran gehindert wird, die Datums- und Uhrzeiteinstellungen zu verwalten.
mTelephonyDetectionSupported Gibt an, ob das Gerät die Zeitzone anhand von Telefonanrufen bestimmen kann.
mGeoDetectionSupported Gibt an, ob das Gerät die Zeitzonenerkennung anhand des Standorts unterstützt. Dies ist der effektive Status basierend auf der Konfiguration und der Anwesenheit von mindestens einem LTZP.
mAutoDetectionEnabled Ob die automatische Zeitzonenerkennung aktiviert ist.
mLocationEnabled Der Hauptschalter für die Standortermittlung.
mGeoDetectionEnabled Der Algorithmusschalter: false steht für den Telefoniealgorithmus und true für den Standortalgorithmus.

Im Vorschlagsverlauf sehen Sie, welche Vorschläge über die Einstellungen (manuell) und über die Telefonie- und Standortalgorithmen gemacht wurden.