Auf dieser Seite wird beschrieben, wie die Zeitzonenerkennung unter Android funktioniert. Dieses die automatische Erkennung von Zeit und Zeitzonen durch Android, Konfiguration Optionen für Gerätehersteller und Testinformationen.
Übersicht über Uhrzeit und Zeitzonen
Um die Ortszeit eines Nutzers für die Anzeige an Orten wie dem Status zu ermitteln erfasst Android zwei verwandte, aber unabhängige Zustände:
- Die aktuelle Unix-Epochen-Zeit
- Die aktuelle Zeitzone
Die aktuelle Unix-Epochen-Zeit und die aktuelle Zeitzone sind geräteübergreifende Statuswerte, d. h., sie werden von allen Nutzern eines Geräts gemeinsam verwendet.
Die aktuelle Unix-Epochen-Zeit ist kein fester Wert. Die Aktualisierung erfolgt automatisch auf den Verlauf der Zeit widerspiegeln. Abgesehen vom normalen Zeitablauf sind die aktuellen Die Unix-Epochen-Zeit eines Geräts wird angepasst, wenn es falsch ist, z. B. beispielsweise nachdem die Stromversorgung unterbrochen wurde.
Die aktuelle Zeitzone bestimmt die Anpassung, die zur Umwandlung des aktuelle Unix-Epochen-Zeit in eine Ortszeit. Zum Beispiel im Sommer in Los Angeles von der aktuellen Unix-Epochenzeit um sieben Stunden im Winter sind es 8 Stunden.
Um diese Ortszeitberechnungen zu unterstützen, 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 verreist, für den eine andere Zeitzone gilt, Die aktuelle Unix-Epochen-Zeit muss nicht angepasst werden, der Nutzer möchte aber um die Ortszeit und nicht die Zeit des vorherigen Standorts zu sehen. Wird geändert Mit der aktuellen Zeitzone wird sichergestellt, dass der richtige Offset auf die aktuelle Zeitzone angewendet wird. Unix-Epochen-Zeit, um die korrekte lokale Zeit für den neuen Ort anzuzeigen.
Mit AOSP können Nutzer selbst steuern, ob Uhrzeit und Zeitzone automatisch mit den folgenden Methoden festgelegt werden.
- Automatische Zeiterkennung: Stellt sicher, dass das Gerät die richtigen aktuelle Unix-Epochen-Zeit.
- Automatische Zeitzonenerkennung: Damit wird sichergestellt, dass auf dem Gerät die richtige Zeitzone ausgewählt ist. in der aktuellen Zeitzone.
Automatische Zeiterkennung
Dieser Abschnitt bietet eine Übersicht über den time_detector
-Dienst, mit dem
automatische Zeiterkennung, Nutzersteuerung, Konfigurationsoptionen und Tests
Details.
Der Dienst „time_Detector“
Die
time_detector
Dienst, der auf Geräten mit Android 10 oder höher vorhanden ist, verwaltet die automatische Zeit
-Erkennung. Sie passt die aktuelle Unix-Epochen-Zeit des Geräts nach Bedarf an, wenn
ist die automatische Zeiterkennung aktiviert.
Der time_detector
-Dienst befindet sich immer in einem von zwei Status: nicht sicher oder
gewährleistet. Der bestimmte oder unsichere Status des Dienstes wird ermittelt.
nach Terminvorschlägen, die sie aus verschiedenen Quellen erhält.
Wenn der time_detector
-Dienst sicher ist, d. h. er eine
Vorschlag mit Zeitangaben zur Unix-Epoche und überschreibt die aktuelle Unix-Epoche
time, wenn sich der Zeitvorschlag von der aktuellen Unix-Epochen-Zeit unterscheidet.
Wenn time_detector
unsicher ist, wird die aktuelle Uhrzeit nicht überschrieben. Die
unsicherer Status bedeutet normalerweise, dass der Dienst time_detector
keine Zeit erhalten hat
Vorschläge. Der time_detector
-Dienst wird außerdem unsicher, ob Vorschläge
als zu alt für die Verwendung gelten. Das Zeitalter der Vorschläge
da Anpassungen mit alten Unix-Zeitvorschlägen für die Unix-Epoche
die verstrichene Zeit auf dem Gerät angezeigt wird, die im Laufe der Zeit
über längere Zeiträume.
Um die aktuelle Unix-Epochen-Zeit automatisch festzulegen, verfügt ein Gerät über verschiedene
Quellen, die sie nutzen kann. In diesem Dokument werden diese als Ursprünge bezeichnet. Die
Der time_detector
-Dienst behandelt Abfolgen von Vorschlägen basierend auf
deren Herkunft.
Der Dienst time_detector
ist zustandsorientiert, d. h., er zeichnet auf
den zuletzt von jedem Ursprung gemachten Vorschlag. Neue Vorschläge
time_detector
, wenn für einen Ursprung neuere Informationen zur Unix-Epochen-Zeit stehen
verfügbar. Der Dienst time_detector
wertet neue und vorhandene Vorschläge neu aus
und aktualisiert den Gerätestatus, wenn Vorschläge eingehen.
Obwohl die UTC-Zeit international vereinbart wird, gibt es verschiedene Gründe dafür, Es ist nicht immer einfach, die aktuelle Unix-Epochen-Zeit zu bestimmen. Android-Gerät:
- Die Unixzeit unterscheidet sich geringfügig von der UTC-Zeit. Für eine Konvertierung zwischen beiden sind Schaltsekunden erforderlich, wie sie von den Ursprüngen gehandhabt werden.
- Ursprünge sind möglicherweise nur zu bestimmten Zeiten oder unter bestimmten Situation. Wenn für den Ursprung beispielsweise eine Netzwerkverbindung erforderlich ist, Diese Funktion ist möglicherweise nur verfügbar, wenn das Gerät mit dem Internet verbunden ist.
- Die Quellen können ungenau oder ungenau sein oder Fehler enthalten. Für Wenn ein Mobilfunkmast die "Weltzeit" nicht verfolgt, falsch ist, liefert der Telefonieursprung möglicherweise falsche Zeitvorschläge.
- Beim Abrufen der Unix-Epochen-Zeit kann es zu Ungenauigkeiten kommen. Beispielsweise kann eine Netzwerkverzögerung, Zwischenspeicherung oder Prozessplanung zu die Unix-Zeit in „Unixzeit“.
- Die Referenzuhr, mit der ein Vorschlag für die verstrichene Zeit angepasst wird erhalten Sie den Vorschlag möglicherweise falsch.
Es gibt zwei Hauptquellen für die Zeiterkennung, die standardmäßig für die Verwendung in AOSP:
- Netzwerk:Verwendet Netzwerk Time Protocol (NTP)-Zeitserver.
- Telefonie: Verwendet NITZ-Telefonie (Network Identity and Time Zone) Signale.
Sowohl Telefonie als auch Netzwerkursprünge erfordern Verbindungen zu externen Netzwerken. die nicht immer verfügbar sind.
Ab Android 12 unterstützt Android auch die folgenden Ursprüngen, die nicht standardmäßig für die Verwendung konfiguriert sind:
- GNSS:Verwendet das GPS Standortanbieter, um eine Uhrzeit von einer GNSS-Quelle abzurufen.
- Extern: Allgemein Ursprung, der es Geräteherstellern ermöglicht, Unix-Epochen-Zeit.
Zeiteinstellungen
Nutzer können die automatische Zeiterkennung unter System > Datum und Uhrzeit im Feld App „AOSP Settings“
Abbildung 1: Automatische Zeiterkennung in den Einstellungen.
In der folgenden Tabelle werden die Steuerelemente der Nutzer für die Zeiterkennung im AOSP beschrieben. Einstellungen.
*Unter Android 11 und niedriger heißt diese Einstellung Verwenden Zeit aus dem Netzwerk |
|||
Speicherort der AOSP-Einstellungen | Name der AOSP-Einstellungen | Aufgabenstellung | Verhalten |
---|---|---|---|
System > Datum und Uhrzeit | Zeit automatisch einstellen* | Alle Nutzer | Ein/Aus-Schaltfläche Wenn diese Option aktiviert ist, erkennt das Gerät das aktuelle Unix Epochenzeit. Ist sie deaktiviert, können Nutzer die die Uhrzeit des Geräts manuell ein. |
Wenn der Nutzer die Zeit manuell eingibt, wird die lokale Zeit eingegeben, nicht die Unix-Epoche. . Die aktuelle Unix-Epochen-Zeit wird anhand der aktuellen Zeitzone berechnet um eine Unix-Epochenzeit abzuleiten.
Konfiguration
Gerätehersteller können den time_detector
-Dienst auf verschiedene Arten konfigurieren:
z. B. welche Quellen verwendet werden sollen und wie die Signale priorisiert werden sollen.
Ursprungspriorisierung
Ab Android 12 können Gerätehersteller die
core/res/res/values/config.xml
Konfigurationsdatei zur Angabe der Uhrzeit
die in die automatische Zeiterkennung einbezogen werden sollen, sowie die Priorität,
time_detector
berücksichtigt diese Ursprünge.
Bei Geräten mit Android 11 oder niedriger ist die Ursprungspriorität in ["telephony", "network"]
hartcodiert, d. h., Telefonievorschläge werden priorisiert
Vorschläge für Werbenetzwerke.
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 werden Vorschläge für Netzwerke und Telefonie angezeigt. als Ursprünge konfiguriert, die standardmäßig verwendet werden sollen. Zeitvorschläge für das Netzwerk sind Vorrang vor Vorschlägen für Telefoniezeit. Gerätehersteller können Änderungen die Reihenfolge der Ursprünge bis zum Verhalten in Android 11 oder niedriger in denen Telefonie eine höhere Priorität hat.
Wenn der gültige Vorschlag mit der höchsten Priorität mit der Einstellung
der aktuellen Systemuhrzeit auf wenige Sekunden lässt sich die Gerätezeit nicht ändern.
geändert werden kann. Dadurch wird vermieden, dass für installierte Apps, die die Ereignisse
ACTION_TIME_CHANGED
Intent.
Die zulässigen Ursprungswerte sind:
Zulässige zeitliche Grenzen
Android 14 bringt eine zeitliche Obergrenze
vom time_detector
-Dienst erhaltene Vorschläge. Wenn das Gerät dies unterstützt
Bei 32-Bit-Prozessen legt das Framework eine Obergrenze fest, um zu verhindern,
der das Problem Y2038 auslösen könnte.
Mit Android 12 wurde eine niedrigere Zeitgrenze eingeführt, die gewohnt ist,
Validiert Zeitvorschläge, die der Dienst time_detector
erhalten hat. Je niedriger
Der Zeitgrenzwert für automatische Vorschläge wird anhand des Build-Zeitstempels festgelegt.
Diese Funktion basiert auf dem Prinzip, dass eine gültige Zeit nicht vor der Ablaufzeit des Geräts liegen kann.
System-Image erstellt wurde. Wenn ein Zeitvorschlag vor der Unterzeitgrenze liegt,
Der Dienst time_detector
verwirft den Vorschlag, da er in folgenden Fällen ungültig ist:
der Zeitstempel des Builds korrekt ist.
Auf Geräten mit Android 11 oder niedriger funktioniert der time_detector
-Dienst nicht
Validieren Sie eingehende Vorschläge für Unix-Epochen-Zeiten.
Zeit zum Debuggen und Testen
Dieser Abschnitt enthält Informationen zum Debuggen und Testen des Verhaltens
den Dienst time_detector
und andere Komponenten, die von allen Ursprüngen gemeinsam genutzt werden.
Mit dem „time_Detector“-Dienst interagieren
Um die Konfiguration des time_detector
-Dienstes und den Status der
Dienst „time_detector
“, verwenden:
adb shell cmd time_detector dump
Zusätzliche Befehle zum Debugging und Testen der Zeitzonenerkennung finden Sie hier:
adb shell cmd time_detector help
In der Hilfeausgabe werden auch die Attribute des Dienstes „device_config“ beschrieben, die
zur Auswirkung auf das Verhalten von time_detector
bei Tests oder in der Produktion.
Weitere Informationen finden Sie unter
Gerät mit dem Dienst „device_config“ konfigurieren
Um die automatische Zeiterkennung zu validieren, müssen Tester wissen, aus welchem Ursprung
Der Dienst time_detector
wird verwendet. Hier sehen Sie ein Beispiel für die Ausgabe
den Befehl adb shell cmd time_detector dump
mit den Informationen zu
den aktuellen Ursprung und Dienststatus in Fettdruck:
$ 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 folgendermaßen 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. |
Das Zeitänderungsprotokoll gibt an, wann der time_detector
-Dienst
die aktuelle Unix-Epochen-Zeit des Geräts geändert.
Die Informationen zum Vorschlagsverlauf geben an, welche Vorschläge von für jeden Ursprung.
Automatische Zeitzonenerkennung
Dieser Abschnitt bietet einen Überblick über den time_zone_detector
-Dienst, der
verwaltet die automatische Zeitzonenerkennung, Steuerelemente für Nutzer in den Einstellungen, die Telefonie und
Standort, Zeitzonenerkennung und Testdetails.
Der Dienst „time_zone_Detector“
Die
time_zone_detector
Dienst, der auf Geräten mit Android 11 oder höher vorhanden ist, verwaltet die automatische Zeit
Zonenerkennung. Die aktuelle Zeitzone des Geräts wird angepasst, wenn
Die automatische Zeitzonenerkennung ist aktiviert.
Wenn die automatische Zeitzonenerkennung aktiviert ist, kann sich time_zone_detector
befinden in
einem der beiden Status uncertain (Unbestimmt) und certain (Bestimmt) fest.
Wenn sich der time_zone_detector
-Dienst in einem bestimmten Status befindet, bedeutet dies,
Der Dienst time_zone_detector
hat aussagekräftige Zeitzoneninformationen erhalten, die
kann dazu führen, dass die aktuelle Zeitzone überschrieben wird. Wenn es unsicher ist,
bedeutet, dass sie keine oder nur wenig vertrauenswürdige Informationen erhalten hat, was
wird die aktuelle Zeitzone nicht überschrieben.
Zu den bestimmten Status des time_zone_detector
-Dienstes können solche gehören, in denen
time_zone_detector
hat keine Zeitzoneninformationen, die verwendet werden können, oder die
mehrere Zeitzonen zur Auswahl. Es gibt folgende Status:
- Ein bestimmter Bundesstaat ohne Zeitzonen wird eingegeben, wenn das Gerät
z. B. in internationalen Gewässern oder in einem
umstrittenen Bereich. Dieser Zustand ähnelt einem unsicheren Zustand, weist jedoch darauf hin,
dass
time_zone_detector
keine weiteren Maßnahmen ergreifen muss, um Zeitzone festlegen - Ein bestimmter Bundesstaat mit mehreren Zeitzonen wird dort eingegeben,
Unklarheiten oder Grenzbedingungen. In diesem Status, wenn die aktuelle Zeitzone
einer der Zeitzonen, die
time_zone_detector
sicher ist, Die aktuelle Zeitzone bleibt unverändert. Andernfalls wird eine der verfügbaren Zeiten verwendet werden. Das verleihttime_zone_detector
ein Element der Wiederkehrrate wenn der Nutzer seine Zeitzone zuvor manuell oder als Gerät sich einem Rahmen nähert.
Der bestimmte oder unsichere Status des time_zone_detector
-Dienstes wird durch
Zeitzonenvorschläge, die von einem Algorithmus gesendet werden.
Im Allgemeinen gibt es zwei Arten von Vorschlägen, die den möglichen Status weitgehend entsprechen.
von time_zone_detector
: sicher und unbestimmt. Im Folgenden finden Sie
Beispiele für Vorschlagstypen:
Typ =
uncertain
,zoneIds = []
- Der Algorithmus kennt die Zeitzone nicht.
Typ =
certain
,zoneIds = ["Europe/London"]
- Dem Algorithmus zufolge liegt die Zone mit Sicherheit in Europa/London.
Typ =
certain
,zoneIds = []
- Der Algorithmus ist sicher, aber es ist keine Zonen-ID zugeordnet durch den aktuellen Standort.
Typ =
certain
,zoneIds = ["America/Denver", "America/Phoenix"]
- Der Algorithmus ist sicher, dass die Antwort eine von zwei Zonen ist, können aber nicht zwischen „Amerika/Denver“ wählen, und „America/Phoenix“.
Der Dienst time_zone_detector
behandelt Abfolgen von Vorschlägen als eigenständige Sequenzen
basierend auf ihrem Algorithmus. Je nach Algorithmus können auch Vorschläge
Metadaten enthalten, die angeben, wie sicher der Algorithmus ist.
Der Dienst time_zone_detector
ist zustandsorientiert, was bedeutet, dass er einen Datensatz
der jeweils letzten Vorschläge
von jedem Algorithmus. Neue Vorschläge werden gesendet
an den time_zone_detector
-Dienst, wenn ein vorheriger Vorschlag nicht mehr enthalten ist
richtig; ob ein Algorithmus jetzt einen anderen Vorschlag macht
die Zeitzone nicht mehr erkennen. Der Dienst time_zone_detector
wertet neue und vorhandene Vorschläge neu aus und aktualisiert den Gerätestatus, wenn
erhalten Sie Vorschläge.
Android unterstützt zwei Algorithmen zur Zeitzonenerkennung:
- Telefonie
- Standort
Der time_zone_detector
-Dienst verwendet in der Regel einen einzigen Algorithmus, um
Zeitzone festlegen Wenn der Standortalgorithmus auf einem Gerät unterstützt wird,
wird der vom Gerät verwendete Algorithmus anhand der
Vom Nutzer konfigurierte Zeitzoneneinstellungen Wenn der Parameter
für den verwendeten Algorithmus die Zeitzone time_zone_detector
nicht mehr sicher ist.
verwendet normalerweise keine Vorschläge eines anderen Algorithmus. Vorschläge
die mit nicht verwendeten Algorithmen verknüpft sind,
time_zone_detector
, werden aber nur verwendet, wenn der Algorithmus
Änderungen. Wenn der Nutzer die Einstellungen für die automatische Zeitzonenerkennung ändert
und der Algorithmus ändert, ist der letzte verfügbare Vorschlag für den
neuer Algorithmus verwendet wird.
Einzelheiten zur Situation, in der mehrere Algorithmen zur Bestimmung der Zeitzone, siehe Telefonie-Fallback-Modus:
Telefonie-Fallback-Modus
Auf Geräten mit Android 13 und höher
Der Dienst time_zone_detector
unterstützt den Telefonie-Fallback-Modus. Dieser Modus
ermöglicht Android, Vorschläge zur Telefonieerkennung vorübergehend zu verwenden,
Standorterkennung konnte die Zeitzone oder den Ort, an dem die Standorterkennung erkannt wird, nicht erkennen
dauert die Erkennung der Zeitzone länger als die Telefonieerkennung.
Der Telefonie-Fallback-Modus gilt für Geräte, auf denen sowohl Telefonie- als auch Standortdienste Standorterkennung unterstützt wird und wo der Nutzer die Option Standort verwenden, um Zeitzone in den Zeitzoneneinstellungen Der Modus ist aktiviert automatisch, wenn ein Gerät neu gestartet und der Flugmodus deaktiviert ist.
Unter Android 14 und höher kann das Telefonie-Fallback ausgelöst durch die LTZP-APIs für Statusberichte Das heißt, wenn ein LTZP-Team das Problem als unsicher und seine Standorterkennung meldet oder die Zeitzone durch die Umgebung eingeschränkt wird, ist der Telefonie-Fallback-Modus ausgelöst.
Im Telefonie-Fallback-Modus verwendet der time_zone_detector
-Dienst die Telefonie
Vorschläge, als wäre die Standorterkennung deaktiviert, bis der Standortalgorithmus
einen bestimmten Vorschlag macht. Nachdem Sie einen bestimmten Vorschlag erhalten haben,
Der Fallback-Modus ist 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 aktivieren und konfigurieren: App „AOSP Settings“
Abbildung 2: Automatische Zeitzonenerkennung in den Einstellungen.
In der folgenden Tabelle werden die Steuerelemente für die Zeitzonenerkennung in der App „AOSP Settings“
*Unter Android 11 und niedriger ist 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/Aus-Schaltfläche Wenn sie aktiviert ist, ist das Gerät für die Erkennung der aktuellen Uhrzeit verantwortlich. . Wenn sie deaktiviert ist, können Nutzer die Einstellung Zeitzone manuell festlegen. |
System > Datum und Uhrzeit | Standort verwenden, um die Zeitzone festzulegen | Aktueller Nutzer | Ein/Aus-Schaltfläche Verfügbar ab Android 12. Diese Ein/Aus-Schaltfläche ist wird nur angezeigt, wenn die Zeitzonenerkennung des Standorts auf dem Gerät unterstützt wird. Informationen zu den mit Android 14 eingeführten Änderungen findest du unter <ph type="x-smartling-placeholder"></ph> Geräte, die nur die Zeitzonenerkennung unterstützen |
deinen Standort zugegriffen haben | Standort verwenden | Aktueller Nutzer | Ein/Aus-Schaltfläche Ermöglicht oder verhindert allgemein die Nutzung des Gerätestandorts. Der Wert ist relevant, wenn die Zeitzonenerkennung auf dem Gerät unterstützt wird. |
Im Folgenden finden Sie einen Überblick über das Geräteverhalten nach Zeitzone. -Erkennung anhand der vom Nutzer ausgewählten Einstellungen:
[Date and Time] Zeitzone automatisch einstellen: AUS
- Der Nutzer muss die Zeitzone manuell auswählen.
[Date and Time] Zeitzone automatisch einstellen: AN
[Location] Standort verwenden:AUS
- Telefoniesignale werden verwendet, um die Zeitzone zu erkennen.
[Standort] Standort verwenden:AN
[Datum und Uhrzeit] Zeitzone anhand des Standorts festlegen:AN
- Anhand des Standorts wird die Zeitzone ermittelt.
[Datum und Uhrzeit] Zeitzone anhand des Standorts festlegen:AUS
- Telefoniesignale werden verwendet, um die Uhrzeit zu erkennen .
Mehrere Nutzergeräte
Da mehrere der betroffenen Einstellungen auf den aktuellen Nutzer beschränkt sind, ist der Das Verhalten der Zeitzonenerkennung eines Geräts kann sich ändern, wenn der aktuelle Nutzer auf einem Android-Gerät mit mehreren Nutzern.
Die Ein/Aus-Schaltfläche Standort zum Festlegen der Zeitzone verwenden bezieht sich auf den aktuellen Nutzer und nicht durch Geräterichtlinien eingeschränkt, was bedeutet, dass Nutzer auch wenn die Ein/Aus-Schaltfläche Zeitzone automatisch einstellen deaktiviert ist oder wenn andere Steuerelemente für die Uhrzeit oder Zeitzone werden vom Device Policy Controller eingeschränkt.
Geräte, die nur den Algorithmus zur Zeitzonenerkennung des Standorts unterstützen
In diesem Abschnitt wird das Verhalten von Geräten beschrieben, die nur den Standort Algorithmus.
Android 14 und höher
- Die Option Standort verwenden wird Nutzern in den AOSP-Einstellungen nicht angezeigt App und das Gerät verhält sich so, als wäre die Option Standort verwenden aktiviert.
- Der Wert der Einstellung
SettingsProvider
auf Nutzerebenelocation_time_zone_detection_enabled
wird ignoriert. Dieser Wert wird erfasst auf anderen Gerätetypen besser zu verstehen.
Android 12 oder Android 13
- Die Option Standort verwenden wird Nutzern in der App „AOSP Settings“ und Nutzer können die Option deaktivieren. Ist die Option deaktiviert, wird die Zeitzone nicht automatisch erkannt.
Verhalten beim Wechsel zur automatischen Erkennung
Wenn der Nutzer die Zeitzonenerkennung von manuell auf automatisch ändert:
time_zone_detector
entspricht möglicherweise bereits der aktuellen Zeitzone. Wenn ja,
Wenn der Nutzer die automatische Erkennung aktiviert, ändert sich möglicherweise die Zeitzone des Geräts.
um der Meinung des Dienstes time_zone_detector
zu entsprechen.
Gleiches gilt, wenn der Nutzer eine Änderung in den Einstellungen vornimmt, die zu einer Änderung an
Mit dem aktuellen Algorithmus des Dienstes time_zone_detector
kann time_zone_detector
Vorschläge für den neuen Algorithmus erhalten haben.
wird möglicherweise geändert, um der Meinung des time_zone_detector
-Dienstes zu entsprechen
sofort.
Zeitzonenerkennung für Telefonie
Bei der Erkennung der Zeitzone für Telefonie werden anhand von Telefoniesignalen die aktuelle Zeitzone. Weitere Informationen finden Sie unter Zeitzone für Telefonie Erkennung.
Zeitzone anhand des Standorts bestimmen
Die Zeitzonenerkennung ist unter Android 12 verfügbar oder höher. Hierbei handelt es sich um eine optionale Funktion zur automatischen Zeitzonenerkennung, Geräte anhand des Standorts die aktuelle Zeitzone ermitteln.
Der Dienst location_time_zone_manager
wurde eingeführt in
Android 12 läuft in der
Systemserver und enthält den für die Übermittlung des Standorts
Algorithmusvorschläge an den Dienst time_zone_detector
.
Weitere Informationen finden Sie unter
Zeitzonenerkennung für Standort:
Überlegungen zur Übernahme von Funktionen
In diesem Abschnitt werden Aspekte der Zeitzonenerkennung für die Standorte beschrieben, damit ein Gerätehersteller feststellen kann, ob die Funktion für ein Gerät verwendet werden soll.
Telefonie und Standorterkennung vergleichen
In der folgenden Tabelle werden die Vor- und Nachteile von statt Telefoniesignalen zur Erkennung der Zeitzone zu verwenden.
Telefonieerkennung | Standorterkennung | |
---|---|---|
Richtigkeit | Das variiert je nach Land. Hängt vom Kundencenter sowie von der NITZ-Richtigkeit und -Verfügbarkeit ab. |
Hängt von der Funktionskonfiguration oder den Plug-in-Komponenten ab. Die Richtigkeit variiert normalerweise in: <ph type="x-smartling-placeholder">
|
Aktualisierbarkeit | Die Telefonieerkennung basiert auf Dateien, die in der aktualisierbaren Time (Zeit) Zonendatenmodul (com.android.tzdata APEX). | Hängt von der Funktionskonfiguration oder den Plug-in-Komponenten ab. Die Aktualisierbarkeit hängt in der Regel davon ab, ob das Gerät einen Server oder Client verwendet Zeitzonenkartendaten. Hinweis: Zeitzonenkartendaten werden nicht in der Zeit Zonendatenmodul, das zum Aktualisieren der TZDB-Kopie von Android und anderer Uhrzeiten verwendet wird Zoneninformationen. Die Gerätehersteller müssen auch die Versionskonsistenz zwischen den Zeitzonenregeln und Zeitzonenkartendaten. |
Stromverbrauch | Kein Energieverbrauch oder geringerer Energieverbrauch | Abhängig von den Standorteinstellungen des Nutzers, den verwendeten Plug-ins und in der Regel welche anderen Apps den Standort anfordern. |
Verfügbarkeit | Nur Telefoniegeräte. Erfordert normalerweise eine funktionierende SIM-Karte. | Die Standorterkennung hängt von den verfügbaren Standortanbietern ab. |
Datenschutz
Die bevorzugte Zeitzone eines Nutzers wird in der Regel anhand seines geografischen Standort. Der Standort umfasst sensible Daten. Nutzende könnten besorgt sein, Kenntnis darüber, dass ihr Standort im Rahmen der Zeitzonenerkennung geteilt wird. Alle Apps, die auf einem Gerät ausgeführt werden, können unabhängig von der Zeitzonenerkennung den Wert der aktuellen Zeitzone des Geräts angezeigt, ohne dass eine Android-Berechtigung erforderlich ist, und Apps können aus diesen Informationen eine ungenaue Vorstellung vom Gerätestandort ableiten.
Genauer gesagt kann die Zeitzonenerkennung sowohl passiv als auch aktiv sein bedeutet:
- Passiv: Etwas in der Geräteumgebung teilt dem Gerät mit, die in dieser Umgebung verwendet werden soll.
- Aktiv: Das Gerät muss die Zeitzone für sich selbst und je nachdem, Datenschutzeinstellungen und ihre Einwilligung Standort des Geräts verwenden. Er kann seinen Standort dann für externe Dienstleistungen. Weitere Informationen zum Datenschutz und zur Einwilligung finden Sie in den nachfolgenden Erläuterungen.
Bei der passiven Erkennung, z. B. beim Telefoniealgorithmus, sind keine zusätzlichen Auswirkungen auf den Datenschutz für Nutzer.
Bei der aktiven Erkennung, z. B. mit dem Standortalgorithmus, wird die den Standort des Geräts, dem Nutzer möglicherweise nicht zustimmen möchten, und den Standort über ein Netzwerk gesendet werden, um die Zeitzonen-ID zu ermitteln.
Der Datenschutzansatz von Android bei der Zeitzonenerkennung bietet Nutzern die Möglichkeit, Möglichkeit, Algorithmen, die wahrscheinlich aktiv sind, einzeln zu deaktivieren Außerdem bezieht sich der AOSP-Plattformcode nicht direkt auf den Standort selbst: Standorterkennung und Zuordnung des Standorts zu Zeitzonen-IDs bleiben dem Plug-in überlassen Komponenten, die von Geräteherstellern konfiguriert wurden.
Weitere Informationen zu den Datenschutzfunktionen für Nutzer finden Sie unter Zeitzone des Standorts Erkennung.
Konfiguration
Gerätehersteller können den time_zone_detector
-Dienst so konfigurieren, dass er geändert wird
zu verstehen. In diesem Abschnitt werden die Konfigurationsoptionen für
des Dienstes time_zone_detector
. Konfigurationsdetails für
die Algorithmen für Telefonie und Zeitzonenerkennung,
Zeitzonenerkennung per Telefon
und
Zeitzonenerkennung des Standorts:
Die AOSP-Basiskonfiguration befindet sich
frameworks/base/core/res/res/values/config.xml
Konfigurationsschlüssel | AOSP-Wert | Beschreibung |
---|---|---|
config_supportTelephonyTimeZoneFallback |
true |
Wenn true , verwendet time_zone_detector Telefonie
Fallback-Modus an. Diese Funktion ist für Android 13 verfügbar.
und höher.
|
Standardverhalten des Geräts ändern
In AOSP ist die automatische Zeitzonenerkennung standardmäßig mit dem Parameter
Die Einstellung „auto_time_zone
“ wurde auf „true
“ festgelegt. So deaktivieren Sie die automatische Zeiterkennung:
Legen Sie standardmäßig den Wert von def_auto_time_zone
fest, der in
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
an false
.
Wenn eine Sicherung von einem anderen Gerät wiederhergestellt wird, aktualisiert das Framework den Wert
der Einstellung auto_time_zone
standardmäßig. Wenn Sie sicherstellen möchten,
Einstellung wird nicht aus einer Sicherung wiederhergestellt. Fügen Sie auto_time_zone
in den
Array restore_blocked_global_settings
definiert in
frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml
Fehlerbehebung und Tests in Zeitzonen
Dieser Abschnitt enthält Informationen zum Debuggen und Testen des Verhaltens
den Dienst time_zone_detector
und andere Komponenten, die von allen
Algorithmen.
Gerät mit dem Dienst „device_config“ konfigurieren
Der Dienst device_config
ist ein Mechanismus, mit dem unter Android
Änderbares Verhalten mit Werten, die in der Regel von einem Remoteserver abgerufen werden
durch proprietären Code (kein AOSP-Code) erfolgen. Wenn Sie device_config
-Werte zu Testzwecken verwenden,
Besonders bei lang andauernden manuellen Tests synchronisiert das Gerät möglicherweise
Flags, wodurch die Flags zurückgesetzt und die für den Test festgelegten Werte gelöscht werden.
Unter Android 12 oder höher können Sie die Meldung für die Synchronisierung:
adb shell cmd device_config set_sync_disabled_for_tests persistent
Um die Flag-Synchronisierung nach Tests wiederherzustellen, verwenden Sie:
adb shell cmd device_config set_sync_disabled_for_tests none
Starten Sie das Gerät nach dem Wiederherstellen der Flag-Synchronisierung neu.
Weitere Informationen erhalten Sie mit $ adb shell cmd device_config help
.
Mit dem Dienst „time_zone_detector“ interagieren
Zum Aufrufen der time_zone_detector
-Konfiguration und des Status der
Dienst „time_zone_detector
“, verwenden:
adb shell cmd time_zone_detector dump
Zusätzliche Befehle zum Debugging und Testen der Zeitzonenerkennung finden Sie hier:
adb shell cmd time_zone_detector help
Die Hilfeausgabe beschreibt auch die device_config
-Dienstattribute, die
Wird verwendet, um das Verhalten des time_zone_detector
-Dienstes für Tests zu beeinflussen
oder in der Produktion ist. Weitere Informationen finden Sie unter
Gerät mit dem Dienst „device_config“ konfigurieren
Um die Zeitzonenerkennung zu validieren, müssen Tester wissen, welchen Algorithmus
time_zone_detector
verwendet. Den aktuellen Algorithmus verstehen und beeinflussen
des time_zone_detector
eine der folgenden Optionen verwenden:
- Sehen Sie sich die Einstellungen in den Einstellungen an. Weitere Informationen finden Sie unter Zeitzoneneinstellungen
Verwenden Sie die Befehlszeile über ADB:
- Zum Dump des Status
time_zone_detector
verwenden Sieadb shell cmd time_zone_detector dump
- Verwenden Sie andere
time_zone_detector
-Befehle, um die Geräteeinstellungen zu ändern. Weitere Informationen erhalten Sie mitadb shell cmd time_zone_detector help
.
- Zum Dump des Status
Das folgende Beispiel zeigt die Ausgabe des Befehls adb shell cmd
time_zone_detector dump
mit den Informationen zum aktuellen
Algorithmus und Dienststatus in Fettdruck:
$ 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 folgendermaßen interpretiert werden:
Key | Wert |
---|---|
mUserConfigAllowed |
Ob der Nutzer daran gehindert wird, die Datums- und Uhrzeiteinstellungen zu steuern, indem er: die Device Policy Controller |
mTelephonyDetectionSupported |
Gibt an, ob das Gerät die Zeitzonenerkennung über Telefonie hat. |
mGeoDetectionSupported |
Gibt an, ob das Gerät die Zeitzonenerkennung unterstützt Dies ist die effektiver Zustand basierend auf der Konfiguration und dem Vorhandensein mindestens einem LTZP. |
mAutoDetectionEnabled |
Gibt an, ob die automatische Zeitzonenerkennung aktiviert ist. |
mLocationEnabled |
Ein/Aus-Schaltfläche für den Hauptstandort |
mGeoDetectionEnabled |
Der Algorithmuswechsel: false gibt den Telefoniealgorithmus an,
und true den Standortalgorithmus angibt. |
In den Informationen zum Vorschlagsverlauf sehen Sie, welche Vorschläge gemacht wurden. Einstellungen (manuell) sowie durch Telefonie- und Standortalgorithmen.