Bu sayfada, Android'de saat ve saat dilimi algılama özelliğinin işleyiş şekli açıklanmaktadır. Bu Android'in saat ve saat dilimlerini otomatik olarak algılama şeklini, seçenekleri ve test bilgileri.
Saat ve saat dilimlerine genel bakış
Bir kullanıcının durum gibi konumlarda görüntülemek üzere yerel saatini belirlemek için altında, Android birbiriyle alakalı ancak bağımsız iki durumu izler:
- Geçerli Unix dönem saati
- Geçerli saat dilimi
Geçerli Unix dönem saati ve geçerli saat dilimi, cihaz genelinde durumlardır. Diğer bir deyişle, bir cihazın tüm kullanıcıları tarafından paylaşılır.
Geçerli Unix sıfır zamanı sabit bir değer değil. Otomatik olarak şu şekilde güncellenir: zamanın akışının bir parçasını yansıtmalıdır. Normal zaman akışının yanı sıra Bir cihazın Unix epoch saati, yanlış olduğu belirlenirse ayarlanır. Örneğin, cihazın elektriği kesildiğinde.
Geçerli saat dilimi, geçerli Unix dönem saatini yerel saate dönüştürür. Örneğin, Los Angeles'ta yaz mevsiminde cihaz geçerli Unix epoch zamanından 7 saat çıkarır ve kışın 8 saat çıkar.
Bu yerel saat hesaplamalarını desteklemek için tüm Android cihazlarda tüm genel saat dilimi kurallarının veritabanını ziyaret edin. Saat dilimi kuralları hakkında daha fazla bilgi için bkz. Saat Dilimi Kuralları.
Bir kullanıcı farklı saat dilimi kullanan yeni bir konuma seyahat ettiğinde geçerli Unix sıfır zamanının ayarlanmasına gerek yoktur ancak kullanıcı genellikle yerel saati görmelerini sağlar. Değiştiriliyor geçerli saat dilimi, geçerli konuma doğru ofsetin uygulanmasını sağlar. Yeni konum için doğru yerel saati görüntülemek üzere Unix sıfır zamanı.
AOSP, kullanıcıların saat ve saat diliminin uygun olup olmadığını bağımsız olarak otomatik olarak ayarlanmasını sağlar.
- Otomatik saat algılama: Cihazın zaman ayarının doğru olmasını sağlar geçerli Unix dönem saati.
- Otomatik saat dilimi algılama: Cihazın saat diliminin doğru olmasını sağlar saat dilimi.
Otomatik saat algılama
Bu bölümde, yönetim sistemini yöneten time_detector
hizmetine genel bir bakış sunulmaktadır.
otomatik zaman algılama, kullanıcı denetimleri, yapılandırma seçenekleri ve test
bolca fırsat sunuyor.
time_detector hizmeti
İlgili içeriği oluşturmak için kullanılan
time_detector
hizmeti, Android 10 veya sonraki sürümleri çalıştıran cihazlarda bulunan otomatik zamanı yönetir
tespit edebilir. Cihazın geçerli Unix dönem zamanını gerektiği şekilde ayarlar
otomatik saat algılama etkinleştirilir.
time_detector
hizmeti her zaman şu iki durumdan birindedir: belirsiz veya
belirli. Hizmetin belirli veya belirsiz durumu belirlendiğinde
çeşitli kaynaklardan aldığı zaman önerilerine göre.
time_detector
hizmeti kesin olduğunda (yani
Unix dönem zaman bilgisi içeren öneri, geçerli Unix dönemini geçersiz kılar
zaman önerisi geçerli Unix dönem zamanından farklıysa
time_detector
belirsiz olduğunda geçerli saati geçersiz kılmaz. İlgili içeriği oluşturmak için kullanılan
belirsiz durum genellikle time_detector
hizmetinin zaman almadığı anlamına gelir
öneriler. time_detector
hizmeti, önerilerin doğru olup olmadığından da emin olmaz
kullanılamayacak kadar eski kabul edilir. Önerilerin kullanıma sunulma tarihi:
eski Unix dönem zaman önerileri kullanan ayarlamalar
cihazda geçen gerçek zamanlı saat (zamana göre yanlış olduğu varsayılır)
uzun süreler.
Geçerli Unix dönem saatini otomatik olarak ayarlamak için cihazın çeşitli
kaynaklar. Bu dokümanda, bunlara kaynaklar adı verilir. İlgili içeriği oluşturmak için kullanılan
time_detector
hizmeti, öneri dizilerini şuna göre farklı olarak değerlendirir:
kaynağı.
time_detector
hizmeti durum bilgili olduğundan,
her kaynak tarafından yapılan en son öneri. Şunlar için yeni öneriler yapılır:
Bir kaynak daha yeni Unix dönem saati bilgisi içeriyorsa time_detector
kullanılabilir. time_detector
hizmeti yeni ve mevcut önerileri yeniden değerlendirir
ve öneri alındığında cihaz durumunu günceller.
UTC saati uluslararası olarak kabul edilse de bunun çeşitli nedenleri vardır geçerli Unix dönemini belirlemek, Android cihaz:
- Unix dönem saati, UTC saatinden oldukça farklı bir zaman tutma sistemidir. Bu ikisi arasında dönüşüm yapmak için artık saniyelerin ne zaman gerçekleştiğini ve nasıl ele alındıklarını açıklar.
- Kaynaklar yalnızca belirli zamanlarda veya belirli sürelerin altında kullanılabilir koşullar. Örneğin, kaynak için ağ bağlantısı gerekiyorsa yalnızca cihaz internete bağlıyken kullanılabilir.
- Kaynaklar yanlış veya tam olmayan ya da hatalı olabilir. Örneğin, Örneğin, bir telefon baz istasyonu "evrensel zaman"ı izlemiyorsa doğru değilse telefon kaynağı yanlış zaman önerileri sağlayabilir.
- Unix dönem saati alınırken yanlışlıklar olabilir. Örneğin ağ gecikmesi, arabelleğe alma veya işlem planlaması Unix dönem saatinin yanlış olması gerekir.
- Bir öneriyi yayın tarihinden itibaren geçen süreye göre düzenlemek için kullanılan referans saat alınan öneri doğru olmayabilir.
Şurada varsayılan olarak kullanılacak şekilde yapılandırılmış iki ana zaman algılama kaynağı vardır: AOSP:
- Ağ: Ağ kullanır Zaman Protokolü (NTP) zaman sunucuları.
- Telefon: Ağ Kimliği ve Saat Dilimi (NITZ) telefon özelliğini kullanır. sinyallerine geçiş yapacaktır.
Hem telefon hem de ağ kaynakları harici ağlara bağlanmayı gerektirir. ve her zaman kullanılamayabilir.
Android, Android 12'den itibaren şu sürümleri de destekler: varsayılan olarak kullanılacak şekilde yapılandırılmayan aşağıdaki kaynaklar:
- GNSS: GPS'yi kullanır GNSS kaynağından saat almak için konum sağlayıcı
- Harici: Genel cihaz üreticilerinin kendi içeriklerini entegre bir şekilde ya da Unix dönem saati.
Zaman ayarları
Kullanıcılar, Sistem > Tarih ve Saat AOSP Ayarları uygulaması.
Şekil 1. Ayarlar'dan otomatik saat algılama.
Aşağıdaki tabloda, AOSP'de zaman algılama için kullanıcı denetimleri açıklanmaktadır. Ayarlar uygulaması.
*Android 11 ve önceki sürümlerde bu ayar ağ tarafından sağlanan zaman |
|||
AOSP Ayarları konumu | AOSP Ayarları adı | Kapsam | Davranış |
---|---|---|---|
Sistem > Tarih ve Saat | Saati otomatik olarak ayarlama* | Tüm kullanıcılar | Açma/kapatma düğmesi. Açıldığında cihaz geçerli Unix'i algılamaktan sorumludur epoch zamanı. Kapalı olduğunda, kullanıcılara zamanı manuel olarak ayarlayın. |
Kullanıcı, zamanı manuel olarak girdiğinde Unix epoch değerini değil, yerel saatini girer gerekir. Geçerli Unix dönem saati, geçerli saat dilimi kullanılarak hesaplanır için farklı bir zaman aralığına sahiptir.
Yapılandırma
Cihaz üreticileri, time_detector
hizmetini çeşitli şekillerde yapılandırabilir.
Örneğin, hangi kaynakların kullanılacağı ve bunlardan gelen sinyallerin nasıl önceliklendirileceği gibi.
Kaynak önceliklendirme
Android 12'den itibaren cihaz üreticileri
core/res/res/values/config.xml
yapılandırma dosyasını kullanarak
otomatik zaman algılamaya dahil edilecek kaynaklar ve
time_detector
bu kaynakları dikkate alıyor.
Android 11 veya önceki sürümleri çalıştıran cihazlarda kaynak önceliği, ["telephony", "network"]
olarak kodlanır. Bu da telefon önerilerine öncelik verildiği anlamına gelir.
ağ önerilerinin üst kısmında yer almalıdır.
Varsayılan AOSP yapılandırması aşağıdaki gibidir:
<!-- 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>
Android 12'de ağ ve telefon önerileri, kaynak olarak yapılandırıldı. Ağ saati önerileri: telefon süresi önerilerinden daha önceliklidir. Cihaz üreticileri değiştirebilir Android 11 veya önceki sürümlerde davranışa geri dönülecek kaynakların sırası öncelikli olarak sunuyoruz.
Varsayılan olarak, en yüksek önceliğe sahip geçerli öneri cihazın
birkaç saniye içinde çalışırsa cihaz saati çalışmaz
değiştirebilirsiniz. Bunun nedeni,
ACTION_TIME_CHANGED
intent.
İzin verilen kaynak değerler şunlardır:
İzin verilen zaman sınırları
Android 14'te zaman sınırı özelliği kullanıma sunuluyor
time_detector
hizmeti tarafından alınan öneriler. Cihaz şunları destekliyorsa:
32 bit işlemler, çerçeve cihazın çalışmasını önlemek için bir üst süre sınırı belirler
kullanarak Y2038 sorununu tetikleyebilecek bir zaman önerisi
kullanmayı engelliyor.
Android 12'de kullanılan zaman sınırı
time_detector
hizmetinin aldığı zaman önerilerini doğrular. Alt
Otomatik öneriler için kullanılan zaman sınırlama değeri, derleme zaman damgasından ayarlanır.
Bu, geçerli bir zamanın cihazın
ve sistem görüntüsü geliştirilmiştir. Zaman önerisi alt zaman sınırından önceyse
time_detector
hizmeti, aşağıdaki durumlarda geçerli olamayacağı için öneriyi siler
derleme zaman damgasının
doğru olduğundan emin olun.
time_detector
hizmeti, Android 11 veya önceki sürümleri çalıştıran cihazlarda
gelen Unix dönem zaman önerilerini doğrular.
Zaman hata ayıklaması ve testi
Bu bölümde,
time_detector
hizmeti ve tüm kaynaklar tarafından paylaşılan diğer bileşenler.
time_detector hizmetiyle etkileşim kurun
time_detector
hizmetinin yapılandırmasını ve durumunu görüntülemek için
time_detector
hizmet, kullanım:
adb shell cmd time_detector dump
Hata ayıklama ve saat dilimi algılamayı test etmeyle ilgili ek komutları görmek için şunları kullanın:
adb shell cmd time_detector help
Yardım çıkışı, aşağıda açıklandığı gibi, device_config hizmet özellikleri
test veya üretimde time_detector
davranışını etkilemek için kullanılır.
Ayrıntılar için bkz.
device_config hizmetini kullanarak bir cihazı yapılandırma.
Otomatik zaman algılamayı doğrulamak için, test kullanıcıları
time_detector
hizmeti kullanıyor. Aşağıdaki örnekte
adb shell cmd time_detector dump
komutunun bir parçası ve
mevcut kaynak ve hizmet durumu kalın harflerle gösterilmiştir:
$ 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:
...
Bilgiler şu şekilde yorumlanabilir:
Anahtar | Değer |
---|---|
mEnvironment.isAutoTimeDetectionEnabled() |
Otomatik saat algılamanın etkin olup olmadığı. |
mEnvironment.autoTimeLowerBound() |
Zaman önerilerini doğrulamak için kullanılan mevcut alt sınır. |
mEnvironment.autoOriginPriorities() |
Kullanılan kaynaklar ve öncelik sırası. |
Zaman değişikliği günlüğü, time_detector
hizmetinin
cihazın geçerli Unix dönem saatini değiştirdi.
Öneri geçmişi bilgileri, tarafından yapılan önerileri gösterir. her kaynak.
Otomatik saat dilimi algılama
Bu bölümde, aşağıdaki işlemleri yapmanızı sağlayan time_zone_detector
hizmetine genel bakış sunulmaktadır:
saat dilimi algılamasını, ayarlardaki kullanıcı denetimlerini, telefonu ve
konum saat dilimini algılama ve test etme ayrıntıları.
time_zone_detector hizmeti
İlgili içeriği oluşturmak için kullanılan
time_zone_detector
hizmeti, Android 11 veya sonraki sürümleri çalıştıran cihazlarda bulunan otomatik zamanı yönetir
alt bölge algılama. Cihazın şu andaki saat dilimini gerektiği şekilde ayarlar
otomatik saat dilimi algılama özelliği etkin.
Otomatik saat dilimi algılama özelliği etkinleştirildiğinde time_zone_detector
,
belirsiz ve belirsiz olmak üzere iki durumdan biri.
time_zone_detector
hizmeti belirli bir durumda olduğunda bu,
time_zone_detector
hizmeti, güçlü saat dilimi bilgileri aldı.
saat dilimini geçersiz kılabilir. Belirsizken bu
hiç bilgi aldığı ya da yalnızca güvenilirliği düşük bilgiler aldığı anlamına gelir.
geçerli saat diliminin geçersiz kılınmayacağı anlamına gelir.
time_zone_detector
hizmetinin belirli durumları, şunları içerebilir:
time_zone_detector
konumunda kullanılacak saat dilimi bilgisi veya saat dilimi bilgisi yok
birden fazla saat dilimi belirleyebilirsiniz. Bu eyaletler aşağıdaki gibidir:
- Cihaz şu durumda olduğunda saat dilimi sıfır olan belirli bir eyalet girildi:
saat dilimi olmayan bir yerde, örneğin uluslararası sularda
sorun teşkil edebilir. Bu durum belirsiz bir duruma benzer ancak
time_zone_detector
uygulamasının, aşağıdaki işlemleri yapmayı denemek için başka bir işlem zaman dilimini belirleyebilir. - Birden çok saat dilimi olan belirli bir eyalet girildiğinde
veya sınır koşullarıyla ilgilidir. Bu durumda, geçerli saat dilimi
time_zone_detector
adlı kullanıcının belirli saat dilimlerinden biri, saat dilimi olduğu gibi kalır. Aksi takdirde, uygun olan zamanlardan biri emin olmanız gerekir. Bu,time_zone_detector
için bir yapışkanlık unsuru sağlar kullanıcı saat dilimini daha önce veya cihaz sınıra yaklaşıyor.
time_zone_detector
hizmetinin belirli veya belirsiz durumu
Bir algoritma tarafından gönderilen saat dilimi önerileri.
Genel olarak, öneriler olası durumlarla yakından eşleşen iki türe sahiptir
time_zone_detector
: belirli ve belirsiz. Bu alanlar:
öneri türü örnekleri:
tür =
uncertain
,zoneIds = []
- Algoritma, saat diliminin ne olduğunu bilmez.
tür =
certain
,zoneIds = ["Europe/London"]
- Algoritma, bölgenin Avrupa/Londra olduğundan emindir.
tür =
certain
,zoneIds = []
`- Algoritma kesin ama ilişkilendirilmiş alt bölge kimliği yok geçerli konumla ilişkilendirin.
tür =
certain
,zoneIds = ["America/Denver", "America/Phoenix"]
- Algoritma, yanıtın iki alt bölgeden biri olduğundan emindir. ancak "Amerika/Denver" arasında seçim yapılamaz. ve "Amerika/Phoenix" yer alır.
time_zone_detector
hizmeti, öneri dizilerini ayrı olarak ele alır
algoritmalarını temel alır. Algoritmaya bağlı olarak, öneriler
algoritmanın ne kadar emin olduğunu belirten meta veriler içerir.
time_zone_detector
hizmeti durum bilgili olduğu için kayıt tutar
en son öneriden oluşan bir liste görürsünüz. Yeni öneriler gönderilir
Önceki bir öneri artık mevcut değilse time_zone_detector
hizmetine
doğru; diğer bir deyişle, algoritma artık farklı bir öneride
saat dilimini algılama özelliğini kaybetti. time_zone_detector
hizmeti
yeni ve mevcut önerileri yeniden değerlendirir ve
önerilerin alındığını kontrol edin.
Android, saat dilimini algılama için iki algoritmayı destekler:
- Telefon Hizmeti
- Konum
time_zone_detector
hizmeti genellikle şu işlemleri gerçekleştirmek için tek bir algoritma kullanır:
zaman dilimini belirleyebilir. Konum algoritması bir cihazda desteklendiğinde
kullanıcının kullandığı algoritma,
Kullanıcı tarafından yapılandırılan saat dilimi ayarları.
kullanılan algoritma saat diliminden (time_zone_detector
) belirsiz hale gelir
genellikle farklı bir algoritmadan alınan önerileri kullanmaz. Öneriler
kullanılmayan algoritmalarla ilişkili dosyalar bellekte tutulabilir.
time_zone_detector
ancak algoritma olmadığı sürece kullanılmazlar.
anlamına gelir. Kullanıcı, otomatik saat dilimi algılama ayarlarını değiştirdiğinde
algoritma değiştiğinde,
yeni algoritma kullanılır.
Birden fazla algoritmanın kullanıldığı durumlarda, saat dilimini öğrenmek, Telefon yedek modu.
Yedek telefon modu
Android 13 ve sonraki sürümleri çalıştıran cihazlarda
time_zone_detector
hizmeti, telefon yedek modunu destekler. Bu mod
Android'in telefon algılama önerilerini geçici olarak kullanmasına izin verir.
konum algılama özelliği, saat dilimini veya konum algılamanın yerini algılayamıyor
saat dilimini algılaması, telefon algılamasına göre daha uzun sürer.
Yedek telefon modu, hem telefon hem de konum verilerinin etkinleştirildiği cihazlar için geçerlidir. ve kullanıcının Şu ayarı yapmak için konumu kullan: Saat dilimi ayarları'ndaki saat dilimi'ni seçin. Mod etkinleştirildi cihaz yeniden başlatıldığında ve uçak modu devre dışı bırakıldığında otomatik olarak.
Android 14 ve sonraki sürümlerde telefon yedeği üzerinden tetiklenerek LTZP durum raporlama API'leri Yani bir LTZP, konumu tespit edebilmenin belirsiz olduğunu bildiriyorsa veya saat dilimi ortamı nedeniyle bozulursa yedek telefon modu tetiklendi.
time_zone_detector
hizmeti telefon yedek modundayken telefon kullanır.
konum algılama, konum algoritmasının devre dışı bırakılması tarihine kadar devre dışı bırakılmış gibi görünür.
size öneride bulunur. Belirli bir öneriyi aldıktan sonra telefon
yedek mod devre dışıdır ve yalnızca konum önerileri kullanılır.
Yedek telefon moduna ilişkin yapılandırma ayrıntıları için bkz. Saat dilimi algılama yapılandırması.
Saat dilimi ayarları
Kullanıcılar otomatik saat dilimi algılama ayarlarını şurada etkinleştirebilir ve yapılandırabilir: AOSP Ayarları uygulamasında.
Şekil 2. Ayarlar'dan otomatik saat dilimi algılama.
Aşağıdaki tabloda, AOSP Ayarları uygulaması.
*Android 11 ve önceki sürümlerde bu ayar etiketlidir Ağ tarafından sağlanan saat dilimini kullan |
|||
AOSP Ayarları konumu | AOSP Ayarları adı | Kapsam | Davranış |
---|---|---|---|
Sistem > Tarih ve Saat | Saat dilimini otomatik olarak ayarlama* | Tüm kullanıcılar | Açma/kapatma düğmesi. Açıldığında geçerli saati algılamaktan cihaz sorumlu olur bölge. Kapalı olduğunda, kullanıcılara cihazın ayarlarını yapma saat dilimini manuel olarak değiştirebilirsiniz. |
Sistem > Tarih ve Saat | Saat dilimini ayarlamak için konumu kullan | Geçerli kullanıcı | Açma/kapatma düğmesi. Android 12'de kullanılabilir. Bu açma/kapatma düğmesi Yalnızca cihazda konum saat dilimi algılama özelliği desteklendiğinde görüntülenir. Android 14'te kullanıma sunulan değişiklikler için bkz. Yalnızca konum saat dilimi algılamayı destekleyen cihazlar. |
Konum | Konumu kullan | Geçerli kullanıcı | Açma/kapatma düğmesi. Cihazın konumunun genel olarak kullanılmasına izin verir veya bunu önler. Değer Cihazda konum saat dilimi algılama özelliğinin desteklenmesi gerekir. |
Aşağıda, saat dilimi için cihaz davranışına genel bir bakış sunulmaktadır kullanıcı tarafından seçilen ayarlara göre algılama:
[Tarih ve Saat] Saat dilimini otomatik olarak ayarla: KAPALI
- Kullanıcı, saat dilimini manuel olarak seçmelidir.
[Tarih ve Saat] Saat dilimini otomatik olarak ayarla: AÇIK
[Konum] Konumu kullan: KAPALI
- Telefon sinyalleri, saat dilimini algılamak için kullanılır.
[Konum] Konumu kullan: AÇIK
[Tarih ve Saat] Saat dilimini ayarlamak için konumu kullan: AÇIK
- Konum, saat dilimini algılamak için kullanılır.
[Tarih ve Saat] Saat dilimini ayarlamak için konumu kullan: KAPALI
- Telefon sinyalleri, zamanı algılamak için kullanılır bölge.
Birden fazla kullanıcı cihazı
Ayarlardan bazıları geçerli kullanıcı kapsamında olduğundan cihazın saat dilimi algılama davranışı, geçerli kullanıcı çok kullanıcılı bir Android cihazda gerçekleşen değişiklikleri gösterebilir.
Saat dilimini ayarlamak için konumu kullan açma/kapatma düğmesi, geçerli kullanıcı ayarını gösterir ve cihaz politikası tarafından kısıtlanmadığından kullanıcılar istedikleri zaman değerine ayarlandığında, Saat dilimini otomatik olarak ayarla düğmesi kapalı olsa bile ya da başka saat veya saat dilimi denetimleri Device Policy Denetleyicisi tarafından kısıtlandı.
Yalnızca konumun saat dilimini algılama algoritmasını destekleyen cihazlar
Bu bölümde yalnızca konumu destekleyen cihazların davranışı açıklanmaktadır algoritmasından faydalanırsınız.
Android 14 ve sonraki sürümler
- AOSP Ayarları'nda kullanıcılara Konumu kullan seçeneği gösterilmez ve cihaz, Konumu kullan seçeneği etkinleştirilmiş gibi davranır.
- Kullanıcı kapsamlı
SettingsProvider
ayarının değerilocation_time_zone_detection_enabled
yoksayıldı. Bu değer, kullanıcının diğer cihaz türlerindeki tercihidir.
Android 12 veya Android 13
- Konumu kullan seçeneği, AOSP Ayarları uygulamasında ve kullanıcılar bu seçeneği devre dışı bırakabilir. Bu seçenek devre dışı bırakılırsa cihaz saat dilimini otomatik olarak algılamaz.
Otomatik algılamaya geçiş ve otomatik algılamadan geçişte görülen davranış
Kullanıcı, saat dilimi algılama seçeneğini manuel yerine otomatik olarak değiştirdiğinde,
time_zone_detector
geçerli saat diliminden zaten emin olabilir. Öyleyse,
Kullanıcı otomatik algılamayı etkinleştirdikçe cihazın saat dilimi değiştirilebilir
time_zone_detector
hizmetinin fikrini eşleştirmek için aynı anda.
Benzer bir şekilde, kullanıcı Ayarlar'da
time_zone_detector
hizmetinin mevcut algoritması nedeniyle time_zone_detector
,
yeni algoritma için zaten öneri almıştı. Bu nedenle,
time_zone_detector
hizmetinin fikrine uyacak şekilde değiştirilebilir
hemen teslim edebilirsiniz.
Telefon saat dilimi algılama
Telefon saat dilimi algılama özelliği, geçerli saat dilimini belirlemek için telefon sinyallerini kullanır. saat dilimi. Daha fazla bilgi için Telefon Saat Dilimi'ne bakın Algılama.
Konum saat dilimini algılama
Konum saat dilimini algılama özelliği Android 12'de kullanılabilir veya daha yüksek olabilir. Bu saat dilimi algılama, isteğe bağlı olarak kullanılan bir otomatik saat dilimi cihazlarınızın geçerli saat dilimini belirlemelerine olanak tanır.
Şurada kullanıma sunulan location_time_zone_manager
hizmeti:
Android 12,
sistem sunucusuna bağlıdır ve konum göndermekten sorumlu kodu içerir
time_zone_detector
hizmetine algoritma önerilerinde bulunmak için kullanılır.
Daha fazla bilgi için bkz.
Konum Saat Dilimi Algılama.
Özellik benimsemeyle ilgili dikkat edilmesi gereken noktalar
Bu bölümde, konum saat dilimi algılama özelliğinin farklı özellikleri cihaz üreticisinin bu özelliği bir cihazda kullanıp kullanmayacağını belirlemesine yardımcı olabilir.
Telefon ve konum algılamayı karşılaştırma
Aşağıdaki tabloda, denemelerin artı ve eksilerinin karşılaştırmasını bulabilirsiniz. konum algılaması için telefon sinyalleri yerine konum kullanılır.
Telefon algılama | Konum algılama | |
---|---|---|
Doğruluk | Ülkeye göre değişir. . . MM'ye, NITZ'nin doğruluğuna ve kullanılabilirliğine bağlıdır. |
Özellik yapılandırmasına veya eklenti bileşenlerine bağlıdır. . . Doğruluk genellikle şunlara göre değişir:
|
Güncellenebilirlik | Telefon algılama, güncellenebilir Saat Bölge Verileri modülü (com.android.tzdata APEX). | Özellik yapılandırmasına veya eklenti bileşenlerine bağlıdır. . . Güncellenebilirlik genellikle cihazın sunucu mu yoksa istemciyi mi kullandığına bağlıdır saat dilimi haritası verileri. . . Not: Saat dilimi haritası verileri Saat Android'in TZDB kopyasını ve diğer saatleri güncellemek için kullanılan Bölge Verileri modülü bölge bilgisi. . . Cihaz üreticileri, saat dilimi kuralları ve saat dilimi harita verileri. |
Güç kullanımı | Hiç güç kullanımı yok veya düşük güç kullanımı | Kullanıcının konum ayarlarına, kullanılan eklentilere ve genellikle hangi uygulamaların konum isteğinde bulunduğunu gösterir. |
Kullanılabilirlik | Yalnızca telefon cihazları. Genellikle çalışan bir SIM gerektirir. | Konum algılama, mevcut konum sağlayıcılara bağlıdır. |
Kullanıcı gizliliği
Kullanıcıların tercih ettiği saat dilimi, genellikle kullanıcının coğrafi konumuna göre konum. Konum hassas veridir. Kullanıcıların, saat dilimi algılama özelliğinin bir parçası olarak konum verilerinin paylaşımıyla ilgili bilgileri içerir. Saat dilimi algılama özelliğinden bağımsız olarak, bir cihazda çalışan tüm uygulamalar Android izni gerekmeden cihazınızın geçerli saat dilimi ve uygulamalar, bu bilgilerden cihazın konumuyla ilgili tam bir fikir edinmeyebilir.
Daha açık belirtmek gerekirse, saat dilimi algılama özelliği pasif veya etkin olabilir. şu anlama gelir:
- Pasif: Cihazın ortamındaki bir şey cihaza şu komutu verir: saat dilimini kullanır.
- Etkin: Cihazın saat dilimini kendisine göre belirlemesi ve kullanıcının iletişim şekline ve onların iznini aldıktan sonra, konum bilgisini alır. Daha sonra konumunu harici müşterilerle paylaşabilir kullanıma sunuyoruz. Kullanıcı gizliliği ve kullanıcı rızasıyla ilgili ayrıntılar için aşağıdaki açıklamayı inceleyin.
Telefon algoritmasında olduğu gibi pasif algılama için ek bir bundan bahsetmek istiyoruz.
Konum algoritmasında olduğu gibi, aktif algılama, kullanıcının konumu, hangi kullanıcıların kabul etmek istemeyebileceği için bir ağ üzerinden gönderilebilir.
Android'in saat dilimini algılamaya yönelik kullanıcı gizliliğine yaklaşımı, kullanıcıya etkin olması beklenen algoritmaları tek tek devre dışı bırakma olanağı sağlar. Ayrıca, AOSP platform kodu doğrudan konumla ilgili değildir: Konum algılama ve konumu saat dilimi kimliklerine eşlemek için eklentiye bırakılır. cihaz üreticileri tarafından yapılandırılan bileşenler.
Kullanıcı gizliliği özellikleri hakkında daha fazla bilgi için Konum Saat Dilimi'ne bakın Algılama.
Yapılandırma
Cihaz üreticileri, time_zone_detector
hizmetini yapılandırabilir
anlamaya başlamışsınızdır. Bu bölümde, genel amaçlı
time_zone_detector
hizmetinin davranışı. Şu yapılandırma ayrıntıları için:
telefon ve saat dilimi algılama algoritmaları için
Telefon Saat Dilimi algılama
ve
Konum Saat Dilimi Algılama.
Temel AOSP yapılandırması şurada:
frameworks/base/core/res/res/values/config.xml
.
Yapılandırma anahtarı | AOSP değeri | Açıklama |
---|---|---|
config_supportTelephonyTimeZoneFallback |
true |
time_zone_detector , true olduğunda telefon özelliğini kullanır
yedek mod. Bu özellik, Android 13'te kullanılabilir.
ve daha yüksek olabilir.
|
Cihazın varsayılan davranışını değiştirme
AOSP'de otomatik saat dilimi algılama özelliği,
auto_time_zone
ayarı true
olarak ayarlandı. Otomatik zaman algılamayı devre dışı bırakmak için
varsayılan olarak, def_auto_time_zone
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
alıcı: false
.
Çerçeve, başka bir cihazdaki yedeği geri yüklerken değeri günceller
varsayılan olarak auto_time_zone
ayarına bağlıdır. Bu mümkün olduğunca
ayarı yedekten geri yüklenmezse auto_time_zone
öğesini
restore_blocked_global_settings
dizisi şurada tanımlanıyor:
frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml
.
Saat dilimi hata ayıklama ve testi
Bu bölümde,
time_zone_detector
hizmeti ve herkes tarafından paylaşılan diğer bileşenler
kullanır.
device_config hizmetini kullanarak bir cihazı yapılandırma
device_config
hizmeti, Android'de aşağıdaki yapılandırma işlemlerini gerçekleştirmek için kullanılan bir mekanizmadır:
genellikle uzaktaki bir sunucudan alınan değerler kullanılarak değiştirilebilir
özel (AOSP olmayan) koda göre. Test için device_config
değerlerini kullanırken,
özellikle uzun süreli manuel testler sırasında cihaz,
flag'leri sıfırlar ve test için ayarlanan değerleri temizler.
Android 12 veya sonraki sürümlerde, işaretlemeyi geçici olarak önlemek için senkronizasyon için şunu kullanın:
adb shell cmd device_config set_sync_disabled_for_tests persistent
Testlerden sonra işaret senkronizasyonunu geri yüklemek için şunları kullanın:
adb shell cmd device_config set_sync_disabled_for_tests none
İşaret senkronizasyonunu geri yükledikten sonra cihazı yeniden başlatın.
Daha fazla bilgi için $ adb shell cmd device_config help
kullanın.
time_zone_detector hizmetiyle etkileşim kurun
time_zone_detector
yapılandırmasını ve durumunu görüntülemek için
time_zone_detector
hizmet, kullanım:
adb shell cmd time_zone_detector dump
Hata ayıklama ve saat dilimi algılamayı test etmeyle ilgili ek komutları görmek için şunları kullanın:
adb shell cmd time_zone_detector help
Yardım çıkışında, aşağıdakileri yapabilecek device_config
hizmet özellikleri de açıklanır:
test amaçlı time_zone_detector
hizmetinin davranışını etkilemek için kullanılır
emin olmanız gerekir. Ayrıntılar için bkz.
device_config hizmetini kullanarak bir cihazı yapılandırma.
Test kullanıcıları, saat dilimi algılanmasını doğrulamak için hangi algoritmanın
time_zone_detector
kullanıyor. Mevcut algoritmayı anlamak ve etkilemek için
time_zone_detector
öğesinin için aşağıdaki seçeneklerden birini kullanın:
- Ayarlar kullanıcı arayüzünü kullanarak görsel olarak kontrol edin. Daha fazla bilgi için bkz. Saat dilimi ayarları.
Adb üzerinden komut satırını kullanın:
time_zone_detector
durumunun dökümünü almak içinadb shell cmd time_zone_detector dump
işlevini kullanın- Cihaz ayarını değiştirmek için diğer
time_zone_detector
komutlarını kullanın. Daha fazla bilgi içinadb shell cmd time_zone_detector help
kullanın.
Aşağıda adb shell cmd
time_zone_detector dump
komutu çıkışının bir örneği verilmiştir. Aşağıdaki örnekteki mevcut
algoritma ve hizmet durumu kalın harflerle gösterilmiştir:
$ 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:
...
Bilgiler şu şekilde yorumlanabilir:
Anahtar | Değer |
---|---|
mUserConfigAllowed |
Kullanıcının tarih ve saat ayarlarını kontrol etmesinin engellenip engellenmediğini Cihaz Politikası Denetleyicisi. |
mTelephonyDetectionSupported |
Cihazın telefon saat dilimi algılama özelliğine sahip olup olmadığı. |
mGeoDetectionSupported |
Cihazın konum saat dilimi algılama özelliğini destekleyip desteklemediği. Bu, yapılandırmaya ve mevcudiyete göre geçerli durum en az bir LTZP olmalıdır. |
mAutoDetectionEnabled |
Otomatik saat dilimi algılama özelliğinin etkin olup olmadığı. |
mLocationEnabled |
Ana konum açma/kapatma düğmesi. |
mGeoDetectionEnabled |
Algoritma anahtarı: false telefon algoritmasını gösterir.
ve true konum algoritmasını gösterir. |
Öneri geçmişi bilgisi, hangi önerilerin yapıldığını gösterir telefon ve konum algoritmaları aracılığıyla da bilinir.