Konum saat dilimini algılama özelliği Android 12'de kullanılabilir veya daha yüksek bir zaman dilimi, isteğe bağlı bir otomatik saat dilimi algılama saat dilimini belirlemek üzere konum ve saat dilimi harita verilerini kullanmalarını sağlar.
Konum saat dilimini algılama, telefon saat dilimine alternatif bir mekanizmadır algılama başlıklı makaleyi inceleyin. Çünkü bu için telefon kullanılması gerekmez. Bu özellik, ek olarak çeşitli form faktörleri bulunuyor.
Konum saat dilimi algılama özelliği aşağıdaki bileşenlerden oluşur: AOSP platformu:
- Sistem sunucusundaki saat dilimi algılama mantığı.
Ayarlar'da kullanıcı tarafından erişilebilen bir seçenek, Android 12, kullanıcıların konum saat dilimi algılama mekanizmalarını kullanabilirsiniz.
Konum algılama ve konum tespiti yapan bileşenler için bir eklenti sistemi saat dilimi eşlemesi. Eklentilere Konum Saat Dilimi Sağlayıcısı adı verilir. (LTZP) biçimindedir ve bir cihazda en fazla iki video bulunabilir. Platform LTZP uygulamak için kullanılması gereken sistem API'leri sağlar.
Referans LTZP uygulaması.
Şuradan referans veri kümesi oluşturmak için kullanılan ana makine araçları: OpenStreetMap verileri referans uygulamayla birlikte kullanılabilecektir.
Kullanıcı gizliliği
Konum saat dilimi algılama özelliği aşağıdaki kullanıcı gizliliği özelliklerini içerir:
Konum algoritmasını seçmek için bir düğme olduğunda kullanıcılar özelliği devre dışı bırakabilir. her an değiştirebilirsiniz.
Konumdan türetilen saat dilimi önerileri, olanak tanır.
Kullanıcılar, saat dilimi algılaması için konumun algılanmasını kontrol edebilir Tarih ve Saat Ayarları ekranı yoluyla açıkça ekleyebilirsiniz. Kullanıcıların kullanarak bir izin iletişim kutusu aracılığıyla açıkça izin verebilirsiniz.
Cihaz konumu bilgileri Android platform hizmetlerine iletilmez. Bunun yerine aşağıdaki işlem gerçekleşir:
- Saat dilimi algılayıcı hizmetlerine yalnızca saat dilimi kimlikleri gönderilir cihazın konumuna değil, LTZP'ye göre değiştirebilirsiniz. Bu, gereken minimum API'dir algılamayı destekler.
- Bağımsız LTZP'lerin çalışması sistem entegratörlerine bağlıdır sahip olacaksınız. LTZP uygulamaları, muhafazaya alınan saat dilimi haritası verilerini kullanabilir Android cihaza geçiş yapabilir, sunuculardan yararlanabilir ya da bahsedeceğiz.
Özellik davranışı
time_zone_detector
hizmeti, cihazın geçerli ayarının ne zaman değiştirileceğini belirler
Algılama algoritmalarından aldığı önerilere göre saat dilimi.
location_time_zone_manager
hizmeti,
time_zone_detector
konum algoritması için öneriler. İlgili içeriği oluşturmak için kullanılan
location_time_zone_manager
hizmeti, sistem sunucusu işleminde çalışır.
location_time_zone_manager
hizmeti, saat dilimi algılama özelliği içermez
mantığıyla başlayalım. Adana, Google Analytics 4'te gerçekleştirilen bir veya iki eklentinin yaşam döngüsünü yönetmekten
Konum Saat Dilimi Sağlayıcıları (LTZP).
Konum saat dilimini algılamak gerekli olmadığında LTZP'ler başlatılmaz. Bu konum saat dilimi algılama sisteminin LTZP'lerden açıkça zorunlu olmadığı sürece cihazın konumuna erişebilir. Bazı bu davranışın nedenleri arasında aşağıdakiler bulunmaktadır:
- Bir projenin parçası olarak pasif olarak alınan telefon sinyallerinden normal telefon operasyonları kapsamında, Google Haritalar'ı kullanan Android konum sağlayıcılar, ek güç tüketebilir.
- Konum ayarları kullanıcı kapsamlıdır ve Android geçerli ayarlarını yapabilir.
- Cihazın konumunu öğrenmek gizlilik açısından hassastır.
Ayrıca, location_time_zone_manager
hizmeti belirsiz bir öneride bulunur (eğer
biri gerekir) - Mevcut kullanıcı, konum paylaşmaktan kaçınmak için değişiklik yaptığında
ne kadar iyi karşıladığını
görebileceksiniz.
Bu seçimlerin sonucu olarak, geçişten sonra genellikle birkaç saniye sürer konuma geçirdikten sonra veya geçerli kullanıcıyı değiştirdikten sonra bir şey yoktur. Bu, aynı zamanda LTZP'lerin yardımcı oluyorum.
AOSP konum saat dilimi algılama uygulaması en fazla iki LTZP'ye izin verir. burada tanımlandığı şekilde birincil ve ikincil LTZP:
- Birincil LTZP
- Kullanıcı, konum saat dilimini algılamaya izin verdiğinde her zaman çalışır özelliğini çalıştırabilirsiniz.
- İkincil LTZP
- Birincil LTZP, saat diliminin belirsiz olduğunu bildirirse çalışır. veya başlatma sırasında zaman aşımına uğrayabilir. Birincil LTZP belirli bir öneri gönderir.
Şekil 1'de gösterildiği gibi, time_zone_detector
hizmetlerinin saat dilimi alır
telefon veya konum algoritmasından
öneriler alabilirsiniz. Konum algoritması
Birincil veya ikincil LTZP'den öneri alır.
Şekil 1. Konum saat dilimi algılama bilgi akışı.
Cihaz yapılandırma gereksinimleri
Konum saat dilimi özelliğini desteklemek için cihazların LTZP'lerle yapılandırılması gerekir. bir şablon görevi görür. Cihazlar, en az bir LTZP'nin etkinleştirilmesini gerektirir ve konum saat dilimi algılamanın çalışır durumda olması ve kullanıcılar tarafından görülebilmesi için yapılandırıldı. Ayarlar'dan kontrol edebilirsiniz.
Cihaz yapılandırması
Bu bölümde, cihaz üreticilerinin Konum saat dilimi algılama seçeneğini tıklayın.
Temel AOSP yapılandırması şurada:
frameworks/base/core/res/res/values/config.xml
:
Yapılandırma anahtarı | AOSP değeri | Açıklama |
---|---|---|
config_enableGeolocationTimeZoneDetection |
true |
Bu, konum saat dilimi algılama özelliğinin ana denetimidir.
. . Bu özellik AOSP'de varsayılan olarak desteklenmektedir. En az bir LTZP olmalıdır kullanıma sunulması için etkin veya yapılandırılmış olmalıdır. . . Değerin false (yanlış) olarak ayarlanması, bu özelliği küçük bir bellek için tamamen devre dışı bırakır kaydedin. |
config_enablePrimaryLocationTimeZoneProvider |
false |
Bu, birincil LTZP'yi etkinleştirir. |
config_primaryLocationTimeZoneProviderPackageName |
Bunu, birincil sağlayıcı hizmetinin çalışacağı uygulamanın paket adına ayarlayın bulabilirsiniz. | |
config_enableSecondaryLocationTimeZoneProvider |
false |
Bu, ikincil LTZP'yi etkinleştirir. |
config_secondaryLocationTimeZoneProviderPackageName |
Bu değeri, ikincil sağlayıcının söz konusu olduğu uygulamanın paket adına ayarlayın. bulunabilir. |
AOSP yapılandırmasında varsayılan olarak
config_enableGeolocationTimeZoneDetection
anahtarı true
olarak ayarlandı, destek etkinleştiriliyor
özelliğini kullanabilirsiniz. Bu özelliği
AOSP varsayılan olarak bir LTZP yapılandırması içermediğinden
Ancak, cihaz üreticileri bu varsayılan yapılandırmayı kullanarak
LTZP'leri komut satırından simüle ederek test edin. (Daha fazla bilgi için bkz.
Hata ayıklama ve test etme.)
LTZP durumu API'leri
LTZP API'leri, Android 14'te LTZP'yi destekler. raporlama durumu bilgileri. Bu, LTZP'nin diğer sorunlar ise platformun kendisinin tespit edemediği sorunlardır. Saat dilimi algılama bileşenleri, konum veya zamana doğrudan dahil değildir konum algoritmasındaki alt bölge algılama özelliğini kullanabilirsiniz.
LTZP davranışının cihazın
uygun olduğu durumlarda
telefon yedek modu
desteklenir. Örneğin, özel ayarları temel alan bir üçüncü taraf LTZP
konum algılama özelliğinin çalışması için gereken izinler düşük modda çalışıyor
veya geçerli cihaz ayarları tarafından devre dışı bırakılırsa bu durumu
Ayarlar uygulaması gibi dahili platform bileşenlerine
reportSuggestion
yöntemidir. Ardından Ayarlar uygulaması, özelleştirilebilir dizeler veya
konum için değiştirilmesi gereken ayarların bulunduğu özelleştirmeler
iyi çalışan veya hiç çalışmadığı anlamına gelir.
LTZP'nin bildirebileceği durumlar hakkında daha fazla bilgi için bkz.
TimeZoneProviderStatus
.
LTZP yapılandırması ve dağıtımı
Bir LTZP'yi yapılandırırken
frameworks/base/core/java/android/service/timezone/TimeZoneProviderService.java
.
Javadoc yorumlarında hizmet hakkında ayrıntılı bilgi verilir, gerekli izinler ve
yapılandırma.
LTZP yapılandırmak için cihaz üreticilerinin uygulama işlemi ile ilgili daha fazla bilgi edinebilirsiniz. LTZP'ye özel bir sürecin olması yüksek bir genel gider; tercihen, seçilen uygulama işlemi örneğin sistem sunucusu gibi.
Şu cihazlarda
modüler sistem bileşenleri
(modüller), LTZP ve LTZP tarafından kullanılan coğrafi veriler arasındaki etkileşimi
oluşturulan saat dilimi kurallarını (tzdb)
Saat Dilimi Verileri modülü
(com.android.tzdata
). Birinde güncelleme olmadan diğerinde güncelleme yapılmaması
soruna neden olabilir. Daha fazla bilgi için bkz.
Özellik benimsemeyle ilgili dikkat edilmesi gereken noktalar.
AOSP referansı LTZP
AOSP,
packages/modules/GeoTZ
.
Bu referans uygulaması, cihazın konumunu belirlemek için AOSP API'lerini kullanır
ve konumu bir dizi saat dilimi kimliğiyle eşlemek için cihaz üzerinde bir veri dosyası kullanır.
Diğer açık kaynak projelerinden türetilen bir referans veri kümesi kaynak koda ekleyin. Daha fazla bilgi için bkz. BENİOKU.md ve çeşitli LICENSE dosyaları.
Hata ayıkla ve test et
Aşağıdaki bölümde, hata ayıklama ve test amaçlı kabuk komutları açıklanmaktadır. konum saat dilimi algılama özelliği.
location_time_zone_manager hizmetiyle etkileşim kurun
Çalışan bir cihazda konum algoritması desteklendiğinde
Android 12 veya sonraki sürümler
Android, başlatma sırasında location_time_zone_manager
hizmetini örneklendirir.
location_time_zone_manager
öğesinin mevcut durumunu döküm almak için şunu kullanın:
adb shell cmd location_time_zone_manager dump
Teste yardımcı olacak kapsamlı bir komut satırı seçeneği grubunu görmek için şunları kullanın:
adb shell cmd location_time_zone_manager help
Yardım çıkışında, aşağıdakileri yapabilecek device_config
hizmet özellikleri de açıklanır:
test amacıyla veya test amacıyla time_zone_detector
öğesinin davranışını etkilemek için
çok önemlidir. Daha fazla bilgi için bkz.
device_config hizmetini kullanarak bir cihazı yapılandırma.
LTZP uygulamaları, kendi hata ayıklama veya test desteği de sağlayabilir. Örneğin, AOSP referansı LTZP'deki hataları ayıklamak için aşağıdaki komutu kullanabilirsiniz kaydedildiğinde bu işlemi görebilirsiniz.
adb shell dumpsys activity service android/com.android.timezone.location.provider.OfflineLocationTimeZoneProviderService