Bu sayfada, Android'de saat ve saat dilimi algılamanın işleyiş şekli açıklanmaktadır. Bu Android'in saat ve saat dilimlerini otomatik olarak algılama şeklini, seçenekleri ve test bilgileri.
Saate 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:
- Mevcut Unix sıfır zamanı
- 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.
Mevcut Unix epoch zamanı sabit bir değer değildir. Zaman ilerledikçe otomatik olarak güncellenir. Normal zaman geçişinin yanı sıra, bir cihazın mevcut Unix çağ zamanının yanlış olduğu tespit edilirse (ör. cihazın gücü kesildikten sonra) ayarlanır.
Geçerli saat dilimi, geçerli Unix dönem saatini yerel saate dönüştürür. Örneğin, Los Angeles'ta yaz aylarında cihaz mevcut Unix epoch zamanından 7 saat, kış aylarında ise 8 saat çıkarır.
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ı bir saat dilimi kullanan yeni bir yere seyahat ettiğinde, mevcut Unix epoch saatinin ayarlanması gerekmez ancak kullanıcı genellikle önceki konumundaki saat yerine yerel saati görmek ister. Mevcut saat dilimini değiştirmek, yeni konumun yerel saatini doğru şekilde göstermek için mevcut Unix sıfır zamanına doğru farkın uygulanmasını sağlar.
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 doğru mevcut Unix başlangıç zamanını kullanmasını sağlar.
- Otomatik saat dilimi algılama: Cihazın doğru saat dilimine sahip olmasını sağlar.
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
Android 10 veya sonraki sürümleri çalıştıran cihazlarda bulunan time_detector
hizmeti, otomatik saat algılamayı yönetir. Otomatik saat algılama etkinleştirildiğinde cihazın mevcut Unix çağ zamanını gerektiği gibi ayarlar.
time_detector
hizmeti her zaman iki durumdan birindedir: belirsiz veya kesin. 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 saat 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 mevcut 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. Bunlara bu dokümanda kaynaklar denir. İ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 bilgisine sahiptir. Yani her kaynağın yaptığı en son önerinin kaydını tutar. Ş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 zamanı uluslararası olarak kabul edilse de mevcut Unix çağ zamanını belirlemenin Android cihazlarda her zaman kolay olmamasının çeşitli nedenleri vardır:
- Unix sıfır zamanı, UTC zamanından biraz farklı bir zaman tutma sistemidir. İkisi arasında dönüşüm yapmak için saniye eklemelerin ne zaman gerçekleştiğini ve kaynaklar tarafından nasıl ele alındığını bilmek gerekir.
- 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ğ Saati Protokolü (NTP) saat sunucularını kullanır.
- Telefon: Ağ Kimliği ve Saat Dilimi (NITZ) telefon sinyallerini kullanır.
Hem telefon hem de ağ kaynakları, her zaman kullanılamayan harici ağlara bağlantı gerektirir.
Android, Android 12'den itibaren şu sürümleri de destekler: varsayılan olarak kullanılacak şekilde yapılandırılmamış şu kaynaklar:
- GNSS: GNSS kaynağından saat almak için GPS konum sağlayıcıyı kullanır.
- Harici: Cihaz üreticilerinin kendi Unix epoch zaman kaynağını entegre etmesine olanak tanıyan genel kaynak.
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 Ayarlar uygulamasında zaman algılamayla ilgili kullanıcı kontrolleri açıklanmaktadır.
*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çık olduğunda cihaz, mevcut Unix başlangıç zamanını algılamaktan sorumludur. Kapalı olduğunda kullanıcılara cihazın saatini manuel olarak ayarlamaları için kontroller sunulur. |
Kullanıcı saati manuel olarak girdiğinde Unix epoch saatini değil, yerel saatini girer. 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 saati önerilerinin üzerinde önceliklendirilir. 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ğerleri ş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 32 bit işlemleri destekliyorsa çerçeve, cihazın 2038 sorununu tetikleyebilecek bir zaman önerisi kullanmasını önlemek için üst bir zaman sınırı belirler.
Android 12'de kullanılan zaman sınırı
time_detector
hizmetinin aldığı zaman önerilerini doğrular. Otomatik öneriler için kullanılan alt zaman sınırı değeri, derleme zaman damgasından ayarlanır.
Bu işlem, geçerli bir saatin cihazın sistem resmi oluşturulmadan önce olamayacağı ilkesine dayanır. 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 şunları kullanın:
adb shell cmd time_detector dump
Hata ayıklama ve saat dilimi algılama testiyle ilgili ek komutları görmek için şunları kullanın:
adb shell cmd time_detector help
Yardım çıkışında, test için veya üretimde time_detector
'ün davranışını etkilemek üzere kullanılabilecek device_config hizmet özellikleri de açıklanır.
Ayrıntılar için device_config hizmetini kullanarak cihazı yapılandırma başlıklı makaleyi inceleyin.
Otomatik saat algılamayı doğrulamak için test kullanıcılarının, time_detector
hizmetinin hangi kaynaklarını kullandığını bilmesi gerekir. 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 aşağıdaki ş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ı. |
Saat değişikliği günlüğü, time_detector
hizmetinin cihazın mevcut Unix sıfır zamanını değiştirdiği durumları gösterir.
Öneri geçmişi bilgileri, tarafından yapılan önerileri gösterir. her kaynak.
Otomatik saat dilimi algılama
Bu bölümde, otomatik saat dilimi algılamayı, ayarlardaki kullanıcı denetimlerini, telefon ve konum saat dilimi algılamayı ve test ayrıntılarını yöneten time_zone_detector
hizmetine genel bir bakış sunulmaktadır.
time_zone_detector hizmeti
Android 11 veya sonraki sürümleri çalıştıran cihazlarda bulunan time_zone_detector
hizmeti, otomatik saat dilimi algılamayı yönetir. Otomatik saat dilimi algılama etkinleştirildiğinde cihazın mevcut saat dilimini gerektiği gibi ayarlar.
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. Belirsizlik olduğunda, cihaz hiçbir bilgi almamış veya yalnızca güvenilirliği düşük bilgiler almış demektir. Bu durumda, mevcut saat dilimi geçersiz kılınmaz.
time_zone_detector
hizmetinin belirli durumları, time_zone_detector
'ün kullanabileceği saat dilimi bilgisinin olmadığı veya aralarından seçim yapabileceği birden fazla saat dilimi bulunduğu durumları içerebilir. Bu eyaletler aşağıdaki gibidir:
- Cihaz, uluslararası sular veya anlaşmazlık bölgesi gibi saat dilimi olmayan bir yerdeyken sıfır saat dilimi olan belirli bir durum girilir. Bu durum, belirsiz duruma benzer ancak
time_zone_detector
'ün saat dilimini belirlemek için başka işlem yapması gerekmediğini gösterir. - Belirsizlik veya sınır koşulları olduğunda birden fazla saat dilimi olan belirli bir eyalet girilir. Bu durumda, mevcut saat dilimi
time_zone_detector
'nin emin olduğu saat dilimlerinden biriyse mevcut saat dilimi olduğu gibi bırakılır. Aksi takdirde, mevcut saat dilimlerinden biri kullanılır. 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. Aşağıda, öneri türlerine dair örnekler verilmiştir:
type =
uncertain
,zoneIds = []
- Algoritma, saat diliminin ne olduğunu bilmez.
tür =
certain
,zoneIds = ["Europe/London"]
- Algoritma, bölgenin Avrupa/Londra olduğundan emindir.
type =
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 "America/Phoenix" yer alır.
time_zone_detector
hizmeti, algoritmasına göre öneri dizilerini farklı olarak değerlendirir. Algoritmaya bağlı olarak, öneriler
algoritmanın ne kadar emin olduğunu belirten meta veriler içerir.
time_zone_detector
hizmeti durum bilgili olduğundan kayıt tutar
en son önerinin bir listesini görürsünüz. Önceki bir öneri artık doğru değilse (yani algoritma artık farklı bir öneri sunuyorsa veya saat dilimini algılama özelliğini kaybetmişse) time_zone_detector
hizmetine yeni öneriler gönderilir. time_zone_detector
hizmeti
yeni ve mevcut önerileri yeniden değerlendirir ve
önerilerin alındığını kontrol edin.
Android, saat dilimi algılama için iki algoritmayı destekler:
- Telefon Hizmeti
- Konum
time_zone_detector
hizmeti, saat dilimini belirlemek için genellikle tek bir algoritma kullanır. 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 dilimini belirlediğinden emin olamadığı durumlarda time_zone_detector
genellikle farklı bir algoritmanın önerilerini kullanmaz. Kullanılmayan algoritmalarla ilişkili öneriler time_zone_detector
tarafından bellekte tutulabilir ancak algoritma değişmedikçe kullanılmaz. Kullanıcı, otomatik saat dilimi algılama ayarlarını değiştirdiğinde
ve algoritma değiştiğinde, Google Etiket Yöneticisi için mevcut
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, konum algılamanın saat dilimini algılayamadığı veya saat dilimini algılamanın konum algılamadan daha uzun sürdüğü durumlarda Android'in telefon algılama önerilerini geçici olarak kullanmasına olanak tanır.
Telefon desteği yedek modu, hem telefon desteğinin hem de konum algılamanın desteklendiği ve kullanıcının Saat dilimi ayarları'nda Saat dilimini ayarlamak için konumu kullan'ı etkinleştirdiği cihazlar için geçerlidir. Bu mod, cihaz yeniden başlatıldığında ve uçak modu devre dışı bırakıldığında otomatik olarak etkinleştirilir.
Android 14 ve sonraki sürümlerde telefon yedeği ve her üç aylık dönem için 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.
bir öneride bulunur. Belirli bir öneri alındıktan sonra telefon
yedek mod devre dışıdır ve yalnızca konum önerileri kullanılır.
Telefon yedek modu ile ilgili yapılandırma ayrıntıları için Saat dilimi algılama yapılandırması başlıklı makaleyi inceleyin.
Saat dilimi ayarları
Kullanıcılar, AOSP Ayarlar uygulamasında otomatik saat dilimi algılama ayarlarını etkinleştirebilir ve yapılandırabilir.
Ş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 ayarla* | Tüm kullanıcılar | Açma/kapatma düğmesi. Açıldığında saatin algılanmasından cihaz sorumludur bölge. Kapalı olduğunda, kullanıcılara cihazın ayarlarını yapma manuel olarak değiştirebilirsiniz. |
Sistem > Tarih ve Saat | Saat dilimini ayarlamak için konumu kullan | Geçerli kullanıcı | Bir açma/kapatma düğmesi. Android 12'den itibaren 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 yapılan değişiklikler için Yalnızca konum saat dilimi algılamayı destekleyen cihazlar başlıklı makaleyi inceleyin. |
Konum | Konumu kullan | Geçerli kullanıcı | Açma/kapatma düğmesi. Cihazın konumunun genel olarak kullanılmasına izin verir veya bunu engeller. 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ı
İlgili ayarların birçoğu geçerli kullanıcıya göre kapsamlandırıldığı için çok kullanıcılı bir Android cihazda geçerli kullanıcı değiştiğinde cihazın saat dilimi algılama davranışı değişebilir.
Saat dilimini ayarlamak için konumu kullan açma/kapatma düğmesi, geçerli kullanıcıya göre kapsamlandırılır ve cihaz politikası tarafından kısıtlanmaz. Bu nedenle, kullanıcılar Saat dilimini otomatik olarak ayarla açma/kapatma düğmesi kapalıyken veya diğer saat ya da saat dilimi kontrolleri Cihaz Politikası Denetleyicisi tarafından kısıtlandığında bile değerini her zaman değiştirebilir.
Yalnızca konumun saat dilimini algılama algoritmasını destekleyen cihazlar
Bu bölümde, yalnızca konum algoritmasını destekleyen cihazların davranışı açıklanmaktadır.
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 tercihini kaydeder.
Android 12 veya Android 13
- Konum bilgisi kullan seçeneği, AOSP Ayarlar uygulamasında kullanıcılara gösterilir ve kullanıcılar bu seçeneği devre dışı bırakabilir. Bu seçenek devre dışıysa cihaz saat dilimini otomatik olarak algılamaz.
Otomatik algılamaya geçiş ve otomatik algılamadan geçiş sırasındaki davranış
Kullanıcı, saat dilimi algılamayı manuel yerine otomatik olarak değiştirdiğinde time_zone_detector
mevcut saat dilimini zaten biliyor olabilir. Bu durumda, kullanıcı otomatik algılamayı etkinleştirirken cihazın saat dilimi de time_zone_detector
hizmetinin görüşüne uyacak şekilde aynı anda değiştirilebilir.
Benzer şekilde, kullanıcı Ayarlar'da time_zone_detector
hizmetinin mevcut algoritmasında değişiklik yapan bir ayar yaptığında time_zone_detector
hizmeti yeni algoritma için öneriler almış olabilir. Bu nedenle, cihazın saati time_zone_detector
hizmetinin görüşüne göre hemen değiştirilebilir.
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 veya sonraki sürümlerde kullanılabilir. Cihazların mevcut saat dilimini belirlemek için konumlarını kullanmasına olanak tanıyan isteğe bağlı bir otomatik saat dilimi algılama özelliğidir.
Ş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 Konum Saat Dilimi Algılama başlıklı makaleyi inceleyin.
Özellik benimsemeyle ilgili dikkat edilmesi gereken noktalar
Bu bölümde, cihaz üreticilerinin cihazlarında bu özelliği kullanıp kullanmayacaklarını belirlemelerine yardımcı olmak için konum saat dilimini algılama özelliğinin bazı yönleri açıklanmaktadır.
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. MCC, NITZ 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üncellenebilinme durumu | Telefon tespiti, güncellenebilir Saat Dilimi Verileri modülünde (com.android.tzdata APEX) bulunan dosyaları kullanır. | Özellik yapılandırmasına veya eklenti bileşenlerine bağlıdır. Güncelleme yapılabilirlik, genellikle cihazın sunucu veya istemci saat dilimi haritası verilerini kullanıp kullanmadığına bağlıdır. Not: Saat dilimi haritası verileri, Android'in TZDB kopyasını ve diğer saat dilimi bilgilerini güncellemek için kullanılan Saat Dilimi Verileri modülüne dahil değildir. Cihaz üreticileri, saat dilimi kuralları ile saat dilimi haritası verileri arasındaki sürüm tutarlılığını da dikkate almalıdır. |
Güç kullanımı | Güç kullanımı yok veya düşük | Kullanıcı konum ayarlarına, kullanılan eklentilere ve genellikle diğer uygulamaların konum isteği gönderip göndermediğine bağlıdır. |
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 ayrıntılı olarak belirtmek gerekirse, saat dilimi algılama özelliği pasif veya etkin yöntemlerle çalışabilir:
- Pasif: Cihazın ortamındaki bir şey, cihaza o ortamda kullanılacak saat dilimini söyler.
- 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 izni hakkında ayrıntılı bilgi için aşağıdaki tartışmaya bakın.
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 dilimi algılama için kullanıcı gizliliğine yaklaşımı, kullanıcıya etkin olması beklenen algoritmaları tek tek devre dışı bırakma olanağı sunar. Ayrıca, AOSP platform kodu doğrudan konumla ilgilenmez: Konum algılama ve konumu saat dilimi kimlikleriyle eşleme, cihaz üreticileri tarafından yapılandırılan eklenti bileşenlerine bırakılır.
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, time_zone_detector
hizmetinin genel davranışı için yapılandırma seçenekleri açıklanmaktadır. Telefon ve saat dilimi algılama algoritmalarının yapılandırma ayrıntıları için Telefon Saat Dilimi Algılama ve Konum Saat Dilimi Algılama başlıklı makaleleri inceleyin.
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 |
true , time_zone_detector telefon kullanımını 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 varsayılan olarak etkindir ve auto_time_zone
ayarı true
olarak ayarlanmıştır. Otomatik saat algılamayı varsayılan olarak devre dışı bırakmak için frameworks/base/packages/SettingsProvider/res/values/defaults.xml
içinde tanımlanan def_auto_time_zone
değerini false
olarak ayarlayın.
Ç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 ayarın bir yedekten geri yüklenmediğinden emin olmak istiyorsanız frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml
içinde tanımlanan restore_blocked_global_settings
dizisine auto_time_zone
ekleyin.
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 kurma
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, test veya üretim için time_zone_detector
hizmetinin davranışını etkilemek üzere kullanılabilecek device_config
hizmet özellikleri de açıklanır. 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. time_zone_detector
özelliğinin mevcut algoritmasını anlamak ve etkilemek 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 Saat dilimi ayarları başlıklı makaleyi inceleyin.
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
sayfasını ziyaret edin.
Aşağıda, mevcut algoritma ve hizmet durumuyla ilgili bilgilerin kalın olarak gösterildiği adb shell cmd
time_zone_detector dump
komutunun çıktısı örneği verilmiş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 aşağıdaki şekilde yorumlanabilir:
Anahtar | Değer |
---|---|
mUserConfigAllowed |
Kullanıcının tarih ve saat ayarlarını kontrol etmesinin engellenip engellenmediğini Cihaz Politikası Denetleyicisi. |
mTelephonyDetectionSupported |
Cihazda telefon saat dilimi algılama özelliğinin olup olmadığı. |
mGeoDetectionSupported |
Cihazın konum saat dilimi algılama özelliğini destekleyip desteklemediği. Bu, yapılandırmaya ve mevcudiyete göre etkili 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.