Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Deteksi Zona Waktu Lokasi

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.

Lokasi deteksi zona waktu adalah mekanisme alternatif untuk deteksi zona waktu telephony . 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. Sebuah plug-in disebut Provider Lokasi Time Zone (LTZP) dan ada bisa sampai dua dari mereka pada perangkat.
  • Implementasi LTZP referensi.
  • Tuan perkakas untuk menghasilkan kumpulan data referensi dari data yang 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 Tanggal dan layar Pengaturan 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

The time_zone_detector layanan menentukan kapan harus mengubah zona waktu perangkat saat ini berdasarkan saran yang diterima dari asal deteksi.

The location_time_zone_manager layanan bertanggung jawab untuk menghasilkan saran untuk asal lokasi time_zone_detector . The location_time_zone_manager layanan berjalan dalam proses sistem server.

The location_time_zone_manager layanan tidak mengandung waktu logika deteksi zona. 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 menggunakan daya tambahan.
  • Pengaturan lokasi adalah cakupan pengguna dan Android harus menghormati pengaturan pengguna saat ini.
  • Mendapatkan lokasi perangkat sensitif terhadap privasi.

Juga, location_time_zone_manager layanan membuat saran yang pasti (jika diperlukan) ketika pengguna saat perubahan untuk menghindari berbagi informasi lokasi 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 laporan LTZP utama bahwa zona waktu tidak pasti, melaporkan kegagalan permanen, atau kali keluar selama inisialisasi. Berhenti jika LTZP utama mengajukan saran tertentu.

Seperti ditunjukkan dalam Gambar 1, time_zone_detector jasa menerima waktu saran zona dari telepon atau lokasi asal. Asal lokasi menerima saran dari LTZP primer atau sekunder.

Alur informasi deteksi zona waktu lokasi

Aliran Gambar 1. Lokasi zona waktu informasi deteksi.

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 adalah pada 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 config_enableGeolocationTimeZoneDetection kunci set untuk 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 lebih lanjut, lihat Debugging dan pengujian .)

Konfigurasi dan penerapan Penyedia Zona Waktu Lokasi

Ketika mengkonfigurasi LTZP, baca petunjuk dalam kode sumber untuk frameworks/base/core/java/android/service/timezone/TimeZoneProviderService.java . Komentar Javadoc memberikan detail 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), mempertimbangkan interaksi antara data geo digunakan oleh LTZP dan aturan zona waktu (tzdb) dilakukan dalam modul Time Data Zona ( com.android.tzdata ). Pembaruan ke satu tanpa pembaruan ke yang lain cenderung menyebabkan masalah kemiringan versi. Untuk informasi lebih lanjut, lihat pertimbangan adopsi Fitur .

Referensi AOSP Lokasi Penyedia Zona Waktu

AOSP berisi referensi Lokasi Zona Waktu pelaksanaan Provider 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 lebih jelasnya, 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

Ketika asal lokasi didukung pada perangkat yang menjalankan Android 12 atau lebih tinggi, Android instantiates location_time_zone_manager layanan pada saat boot.

Untuk membuang keadaan saat ini location_time_zone_manager , 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 device_config sifat layanan yang dapat digunakan untuk mempengaruhi perilaku time_zone_detector untuk pengujian atau produksi. Untuk informasi lebih lanjut, lihat Konfigurasi 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