Deteksi Zona Waktu Lokasi, tersedia di Android 12 atau lebih tinggi, adalah fitur deteksi zona waktu otomatis opsional yang memungkinkan perangkat menggunakan lokasi dan data peta zona waktu untuk menentukan zona waktu.
Deteksi zona waktu lokasi adalah mekanisme alternatif untuk deteksi zona waktu telepon . Karena fitur ini tidak memerlukan telepon, fitur ini dapat didukung pada perangkat dengan berbagai faktor bentuk selain perangkat telepon seluler.
Fitur deteksi zona waktu lokasi terdiri dari komponen berikut di platform AOSP:
- Logika deteksi zona waktu di server sistem.
- Opsi yang dapat diakses pengguna di Pengaturan, diperkenalkan di Android 12, untuk memungkinkan pengguna memilih antara mekanisme deteksi zona waktu telepon dan lokasi.
- Sistem plug-in untuk komponen yang melakukan deteksi lokasi dan pemetaan zona waktu. Plug-in disebut Penyedia Zona Waktu Lokasi (LTZP) dan bisa ada hingga dua di perangkat.
- Implementasi LTZP referensi.
- Alat host untuk menghasilkan kumpulan data referensi dari data OpenStreetMap yang dapat digunakan dengan implementasi referensi.
Privasi pengguna
Deteksi zona waktu lokasi mencakup fitur privasi pengguna berikut:
- Pengguna dapat mematikan deteksi zona waktu lokasi kapan saja.
- Saran zona waktu berdasarkan lokasi tidak dibagikan di antara pengguna di perangkat.
- Pengguna dapat mengontrol deteksi lokasi untuk deteksi zona waktu secara eksplisit melalui layar Pengaturan Tanggal dan Waktu . Pengguna tidak harus secara eksplisit memberikan izin melalui dialog izin.
Informasi lokasi perangkat tidak diteruskan ke layanan platform Android. Hal berikut terjadi sebagai gantinya:
- Layanan pendeteksi zona waktu hanya dikirimi ID zona waktu oleh LTZP, bukan lokasi perangkat. Ini adalah API minimal yang diperlukan untuk mendukung deteksi zona waktu lokasi.
- Pengoperasian LTZP individu diserahkan kepada integrator sistem untuk memutuskan. Implementasi LTZP dapat menggunakan data peta zona waktu yang disimpan sepenuhnya di perangkat Android, server leverage, atau menggunakan pendekatan hybrid.
Perilaku fitur
Layanan time_zone_detector
menentukan kapan harus mengubah zona waktu perangkat saat ini berdasarkan saran yang diterimanya dari asal deteksi .
Layanan location_time_zone_manager
bertanggung jawab untuk menghasilkan saran untuk lokasi asal time_zone_detector
. Layanan location_time_zone_manager
berjalan dalam proses server sistem.
Layanan location_time_zone_manager
tidak berisi logika deteksi zona waktu. Ini bertanggung jawab untuk mengelola siklus hidup satu atau dua plug-in yang disebut Penyedia Zona Waktu Lokasi (LTZP).
Saat deteksi zona waktu lokasi tidak diperlukan, LTZP tidak dimulai. Ini berarti bahwa sistem deteksi zona waktu lokasi tidak meminta LTZP untuk melacak lokasi perangkat kecuali mereka secara eksplisit diminta. Beberapa penyebab perilaku tersebut antara lain sebagai berikut:
- Tidak seperti sinyal telepon yang diterima secara pasif sebagai bagian dari operasi telepon biasa, lokasi dapat diminta secara aktif dari penyedia lokasi Android dan dapat menghabiskan daya tambahan.
- Pengaturan lokasi adalah cakupan pengguna dan Android harus menghormati pengaturan pengguna saat ini.
- Mendapatkan lokasi perangkat sensitif terhadap privasi.
Juga, layanan location_time_zone_manager
membuat saran yang tidak pasti (jika diperlukan) ketika pengguna saat ini berubah untuk menghindari berbagi informasi lokasi di antara pengguna.
Sebagai hasil dari pilihan ini, biasanya diperlukan beberapa detik setelah mengalihkan asal saat ini ke lokasi, atau setelah mengalihkan pengguna saat ini, sebelum zona waktu dapat dideteksi. Ini juga tergantung pada implementasi LTZP yang digunakan.
Implementasi deteksi zona waktu lokasi AOSP memungkinkan hingga dua LTZP, LTZP primer dan sekunder seperti yang didefinisikan di sini:
- LTZP primer
- Berjalan setiap saat ketika pengguna telah mengizinkan fitur deteksi zona waktu lokasi untuk berjalan.
- LTZP sekunder
- Berjalan jika LTZP utama melaporkan bahwa zona waktu tidak pasti , melaporkan kegagalan permanen, atau waktu habis selama inisialisasi. Berhenti jika LTZP utama mengajukan saran tertentu .
Seperti yang ditunjukkan pada Gambar 1, layanan time_zone_detector
menerima saran zona waktu dari telepon atau lokasi asal. Asal lokasi menerima saran dari LTZP primer atau sekunder.
Gambar 1. Alur informasi deteksi zona waktu lokasi.
Persyaratan konfigurasi perangkat
Untuk mendukung fitur zona waktu lokasi, perangkat harus dikonfigurasi dengan LTZP yang dapat digunakan perangkat. Perangkat memerlukan setidaknya satu LTZP untuk diaktifkan dan dikonfigurasi agar deteksi zona waktu lokasi berfungsi dan terlihat oleh pengguna di Setelan.
Konfigurasi perangkat
Bagian ini menjelaskan bagaimana produsen perangkat dapat mengonfigurasi perangkat untuk mendukung deteksi zona waktu lokasi.
Konfigurasi dasar AOSP ada di frameworks/base/core/res/res/values/config.xml
:
Kunci konfigurasi | nilai AOSP | Keterangan |
---|---|---|
config_enableGeolocationTimeZoneDetection | true | Ini adalah kontrol utama untuk fitur deteksi zona waktu lokasi. Fitur ini didukung secara default di AOSP. Setidaknya satu LTZP harus diaktifkan atau dikonfigurasi agar fitur tersedia bagi pengguna. Menyetel nilai ke false menonaktifkan fitur sepenuhnya untuk menghemat memori kecil. |
config_enablePrimaryLocationTimeZoneProvider | false | Ini memungkinkan LTZP utama. |
config_primaryLocationTimeZoneProviderPackageName | Setel ini ke nama paket aplikasi tempat layanan penyedia utama dapat ditemukan. | |
config_enableSecondaryLocationTimeZoneProvider | false | Ini memungkinkan LTZP sekunder. |
config_secondaryLocationTimeZoneProviderPackageName | Setel ini ke nama paket aplikasi tempat layanan penyedia sekunder dapat ditemukan. |
Secara default, konfigurasi AOSP memiliki kunci config_enableGeolocationTimeZoneDetection
disetel ke true
, memungkinkan dukungan untuk fitur deteksi zona waktu lokasi. Fitur ini awalnya tidak terlihat oleh pengguna karena AOSP tidak menyertakan konfigurasi LTZP secara default. Namun, dengan menggunakan konfigurasi default ini, produsen perangkat dapat mengaktifkan dan mensimulasikan LTZP dari baris perintah untuk pengujian. (Untuk informasi selengkapnya, lihat Debugging dan pengujian .)
Konfigurasi dan penerapan Penyedia Zona Waktu Lokasi
Saat mengonfigurasi LTZP, baca petunjuk dalam kode sumber untuk frameworks/base/core/java/android/service/timezone/TimeZoneProviderService.java
. Komentar Javadoc memberikan rincian tentang layanan, izin yang diperlukan dan konfigurasi lainnya.
Untuk mengonfigurasi Penyedia Zona Waktu Lokasi, produsen perangkat harus memilih proses aplikasi untuk meng-host layanan LTZP. Memiliki proses khusus untuk LTZP adalah overhead yang tinggi; idealnya, proses aplikasi yang dipilih adalah yang berjalan setiap saat seperti server sistem.
Pada perangkat dengan komponen sistem modular (modul), pertimbangkan interaksi antara data geo yang digunakan oleh LTZP dan aturan zona waktu (tzdb) yang dibawa dalam modul Data Zona Waktu ( com.android.tzdata
). Pembaruan ke satu tanpa pembaruan ke yang lain cenderung menyebabkan masalah kemiringan versi. Untuk informasi selengkapnya, lihat Pertimbangan adopsi fitur .
Referensi AOSP Lokasi Penyedia Zona Waktu
AOSP berisi referensi implementasi Penyedia Zona Waktu Lokasi di bawah packages/modules/GeoTZ
. Implementasi referensi ini menggunakan API AOSP untuk menentukan lokasi perangkat dan menggunakan file data di perangkat untuk memetakan lokasi ke kumpulan ID zona waktu.
Kumpulan data referensi yang berasal dari proyek sumber terbuka lainnya disertakan dengan kode sumber. Untuk detail lebih lanjut, lihat README.md dan berbagai file LISENSI.
Debug dan pengujian
Bagian berikut menjelaskan perintah shell untuk debugging dan pengujian fitur deteksi zona waktu lokasi.
Berinteraksi dengan layanan location_time_zone_manager
Saat asal lokasi didukung pada perangkat yang menjalankan Android 12 atau lebih tinggi, Android membuat instance layanan location_time_zone_manager
saat boot.
Untuk membuang status location_time_zone_manager
saat ini, gunakan:
adb shell cmd location_time_zone_manager dump
Untuk melihat serangkaian opsi baris perintah yang ekstensif untuk membantu pengujian, gunakan:
adb shell cmd location_time_zone_manager help
Output bantuan juga menjelaskan properti layanan device_config
yang dapat digunakan untuk mempengaruhi perilaku time_zone_detector
untuk pengujian atau produksi. Untuk informasi selengkapnya, lihat Mengonfigurasi perangkat menggunakan layanan device_config .
Implementasi LTZP juga dapat memberikan dukungan debugging atau pengujian mereka sendiri. Misalnya, Anda dapat menggunakan perintah berikut untuk men-debug LTZP referensi AOSP ketika terdaftar dalam proses server sistem.
adb shell dumpsys activity service android/com.android.timezone.location.provider.OfflineLocationTimeZoneProviderService