Halaman ini menjelaskan cara kerja deteksi waktu dan zona waktu di Android. Ini termasuk bagaimana Android secara otomatis mendeteksi waktu dan zona waktu, opsi konfigurasi untuk produsen perangkat, dan informasi pengujian.
Ikhtisar waktu dan zona waktu
Untuk menentukan waktu lokal pengguna untuk ditampilkan di lokasi seperti bilah status, Android melacak dua status terkait tetapi independen:
- Waktu zaman Unix saat ini
- Zona waktu saat ini
Waktu epoch Unix saat ini dan zona waktu saat ini adalah status di seluruh perangkat, artinya mereka digunakan bersama oleh semua pengguna perangkat.
Waktu Epoch Unix saat ini bukanlah nilai tetap. Ini diperbarui secara otomatis untuk mencerminkan berlalunya waktu. Selain berlalunya waktu normal, waktu epoch Unix saat ini dari perangkat akan disesuaikan jika ternyata salah, misalnya, setelah perangkat kehilangan daya.
Zona waktu saat ini menentukan penyesuaian yang akan dilakukan untuk mengubah waktu zaman Unix saat ini menjadi waktu lokal. Misalnya, selama musim panas di Los Angeles, perangkat mengurangi 7 jam dari waktu zaman Unix saat ini, dan di musim dingin mengurangi 8 jam.
Untuk mendukung penghitungan waktu lokal ini, semua perangkat Android memiliki database semua aturan zona waktu global . Untuk informasi selengkapnya tentang aturan zona waktu, lihat Aturan Zona Waktu .
Saat pengguna melakukan perjalanan ke lokasi baru yang menggunakan zona waktu berbeda, waktu epoch Unix saat ini tidak perlu disesuaikan tetapi pengguna biasanya ingin melihat waktu lokal daripada waktu di lokasi sebelumnya. Mengubah zona waktu saat ini memastikan bahwa offset yang benar diterapkan ke waktu epoch Unix saat ini untuk menampilkan waktu lokal yang benar untuk lokasi baru.
AOSP memungkinkan pengguna untuk mengontrol secara mandiri apakah waktu dan zona waktu diatur secara otomatis untuk mereka melalui mekanisme berikut.
- Deteksi waktu otomatis: Memastikan bahwa perangkat memiliki waktu epoch Unix saat ini yang benar.
- Deteksi zona waktu otomatis: Memastikan perangkat memiliki zona waktu saat ini yang benar.
Deteksi waktu otomatis
Bagian ini memberikan gambaran umum tentang layanan time_detector
yang mengelola deteksi waktu otomatis, kontrol pengguna, opsi konfigurasi, dan detail pengujian.
Layanan time_detector
Layanan time_detector
, yang ada di perangkat yang menjalankan Android 10 atau lebih tinggi, mengelola deteksi waktu otomatis. Ini menyesuaikan waktu zaman Unix perangkat saat ini sesuai kebutuhan ketika deteksi waktu otomatis diaktifkan.
Layanan time_detector
selalu dalam salah satu dari dua status: tidak pasti atau tertentu . Status pasti atau tidak pasti layanan ditentukan oleh saran waktu yang diterimanya dari berbagai sumber.
Ketika layanan time_detector
pasti, artinya telah menerima saran dengan informasi waktu epoch Unix, itu menimpa waktu epoch Unix saat ini jika saran waktu berbeda dari waktu epoch Unix saat ini.
Ketika time_detector
tidak pasti, itu tidak menimpa waktu saat ini. Keadaan tidak pasti biasanya berarti layanan time_detector
belum menerima saran waktu. Layanan time_detector
juga menjadi tidak pasti jika saran yang diterima dianggap terlalu lama untuk digunakan. Usia saran dipertimbangkan karena penyesuaian menggunakan saran waktu zaman Unix lama bergantung pada jam waktu nyata yang telah berlalu pada perangkat, yang dianggap tidak akurat dalam jangka waktu lama.
Untuk menetapkan waktu epoch Unix saat ini secara otomatis, perangkat memiliki berbagai sumber yang dapat digunakan. Ini disebut asal- usul dalam dokumen ini. Layanan time_detector
memperlakukan urutan saran sebagai berbeda berdasarkan asalnya.
Layanan time_detector
bersifat stateful, yang berarti layanan ini menyimpan catatan saran terbaru yang dibuat oleh masing-masing Origin. Saran baru dibuat untuk time_detector
jika Origin memiliki informasi waktu Unix terbaru yang tersedia. Layanan time_detector
mengevaluasi ulang saran baru dan yang sudah ada serta memperbarui status perangkat saat saran diterima.
Meskipun waktu UTC disepakati secara internasional, ada berbagai alasan mengapa menetapkan waktu zaman Unix saat ini tidak selalu mudah untuk perangkat Android:
- Waktu epoch Unix adalah sistem ketepatan waktu yang agak berbeda dari waktu UTC. Konversi antara keduanya membutuhkan pengetahuan tentang kapan detik kabisat terjadi dan bagaimana mereka ditangani oleh asal.
- Origins mungkin hanya tersedia pada waktu tertentu atau dalam keadaan tertentu. Misalnya, jika asal memerlukan konektivitas jaringan, mungkin hanya tersedia saat perangkat terhubung ke internet.
- Asal mungkin tidak akurat atau tidak tepat, atau memiliki kesalahan. Misalnya, jika menara seluler telepon tidak melacak "waktu universal" dengan benar, asal telepon mungkin memberikan saran waktu yang tidak akurat.
- Mungkin ada ketidakakuratan yang diperkenalkan saat mendapatkan waktu epoch Unix. Misalnya, penundaan jaringan, buffering, atau penjadwalan proses dapat menyebabkan waktu epoch Unix menjadi tidak akurat.
- Jam referensi yang digunakan untuk menyesuaikan saran untuk waktu yang telah berlalu sejak saran diterima mungkin tidak akurat.
Ada dua asal deteksi waktu utama yang dikonfigurasi untuk digunakan secara default di AOSP:
- Telepon: Menggunakan sinyal telepon Network Identity and Time Zone (NITZ).
- Jaringan: Menggunakan server waktu Network Time Protocol (NTP).
Baik asal telepon maupun jaringan memerlukan konektivitas ke jaringan eksternal, yang tidak selalu tersedia.
Dimulai dengan Android 12, Android juga mendukung asal berikut, yang tidak dikonfigurasi untuk digunakan secara default:
- GNSS : Menggunakan penyedia lokasi GPS untuk mendapatkan waktu dari sumber GNSS.
- Eksternal : Asal generik yang memungkinkan produsen perangkat untuk mengintegrasikan sumber waktu Unix mereka sendiri.
Pengaturan waktu
Pengguna dapat mengaktifkan deteksi waktu otomatis di Sistem > Tanggal dan Waktu di aplikasi Pengaturan AOSP.
Gambar 1. Deteksi waktu otomatis di Pengaturan.
Tabel berikut menjelaskan kontrol pengguna untuk deteksi waktu di aplikasi Pengaturan AOSP.
*Di Android 11 dan yang lebih rendah, setelan ini diberi label Gunakan waktu yang disediakan jaringan | |||
Lokasi Pengaturan AOSP | Nama Pengaturan AOSP | Cakupan | Perilaku |
---|---|---|---|
Sistem > Tanggal dan Waktu | Atur waktu secara otomatis* | Semua pengguna | Sebuah sakelar. Saat aktif , perangkat bertanggung jawab untuk mendeteksi waktu zaman Unix saat ini. Saat nonaktif , pengguna diberikan kontrol untuk menyetel waktu perangkat secara manual. |
Ketika pengguna memasukkan waktu secara manual, mereka memasukkan waktu lokal mereka, bukan waktu epoch Unix. Waktu epoch Unix saat ini dihitung dengan menggunakan zona waktu saat ini untuk mendapatkan waktu epoch Unix.
Konfigurasi
Produsen perangkat dapat mengonfigurasi layanan time_detector
dengan berbagai cara, seperti asal mana yang akan digunakan dan cara memprioritaskan sinyal dari mereka.
Prioritas asal
Dari Android 12, produsen perangkat dapat mengubah file konfigurasi core/res/res/values/config.xml
untuk menentukan asal waktu mana yang akan disertakan dalam deteksi waktu otomatis, dan prioritas time_detector
yang mempertimbangkan asal-usul ini.
Untuk perangkat yang menjalankan Android 11 atau lebih rendah, prioritas asal di-hardcode ke ["telephony", "network"]
, artinya saran telepon diprioritaskan di atas saran jaringan.
Konfigurasi AOSP default adalah sebagai berikut:
<!-- 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>
Di Android 12, saran jaringan dan telepon dikonfigurasi sebagai asal untuk digunakan secara default. Saran waktu jaringan diprioritaskan di atas saran waktu telepon. Produsen perangkat dapat mengubah urutan asal untuk kembali ke perilaku di Android 11 atau lebih rendah, di mana telepon diberikan prioritas yang lebih tinggi.
Secara default, jika saran valid dengan prioritas tertinggi cocok dengan waktu jam sistem perangkat saat ini dalam beberapa detik, waktu perangkat tidak akan diubah. Ini untuk menghindari pembuatan pekerjaan untuk aplikasi terpasang yang mendengarkan maksud ACTION_TIME_CHANGED
.
Nilai asal yang diizinkan adalah:
Batas waktu yang lebih rendah
Android 12 memperkenalkan batas waktu yang lebih rendah yang digunakan untuk memvalidasi saran waktu yang diterima oleh layanan time_detector
. Nilai batas waktu yang lebih rendah diatur dari stempel waktu pembuatan. Ini bekerja berdasarkan prinsip bahwa waktu yang valid tidak boleh sebelum citra sistem perangkat dibangun. Jika saran waktu sebelum batas waktu yang lebih rendah, layanan time_detector
membuang saran karena tidak valid jika stempel waktu build benar.
Untuk perangkat yang menjalankan Android 11 atau lebih rendah, layanan time_detector
tidak memvalidasi saran waktu epoch Unix yang masuk.
Android tidak memberlakukan batas waktu atas.
Waktu debugging dan pengujian
Bagian ini menyediakan informasi tentang cara men-debug dan menguji perilaku layanan time_detector
dan komponen lain yang dibagikan oleh semua asal.
Berinteraksi dengan layanan time_detector
Untuk melihat konfigurasi layanan time_detector
dan status layanan time_detector
, gunakan:
adb shell cmd time_detector dump
Untuk melihat perintah tambahan untuk debugging dan pengujian deteksi zona waktu, gunakan:
adb shell cmd time_detector help
Output bantuan juga menjelaskan properti layanan device_config yang dapat digunakan untuk mempengaruhi perilaku time_detector
untuk pengujian atau produksi. Untuk detailnya, lihat Mengonfigurasi perangkat menggunakan layanan device_config .
Untuk memvalidasi deteksi waktu otomatis, penguji harus mengetahui asal mana yang digunakan layanan time_detector
. Berikut ini adalah contoh keluaran dari perintah adb shell cmd time_zone_detector dump
, dengan informasi tentang asal dan status layanan saat ini dicetak tebal:
$ 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:
...
Informasi tersebut dapat diartikan sebagai berikut:
Kunci | Nilai |
---|---|
mEnvironment.isAutoTimeDetectionEnabled() | Apakah deteksi waktu otomatis diaktifkan. |
mEnvironment.autoTimeLowerBound() | Batas bawah saat ini digunakan untuk memvalidasi saran waktu. |
mEnvironment.autoOriginPriorities() | Asal-usul yang digunakan dan urutan prioritas. |
Log perubahan waktu menunjukkan saat-saat ketika layanan time_detector
telah mengubah waktu epoch Unix saat ini dari perangkat.
Informasi riwayat saran menunjukkan saran apa yang telah dibuat oleh masing-masing asal.
Deteksi zona waktu otomatis
Bagian ini memberikan gambaran umum tentang layanan time_zone_detector
yang mengelola deteksi zona waktu otomatis, kontrol pengguna dalam pengaturan, deteksi zona waktu telepon dan lokasi, serta detail pengujian.
Layanan time_zone_detector
Layanan time_zone_detector
, yang ada di perangkat yang menjalankan Android 11 atau lebih tinggi, mengelola deteksi zona waktu otomatis. Ini menyesuaikan zona waktu perangkat saat ini sesuai kebutuhan ketika deteksi zona waktu otomatis diaktifkan.
Saat deteksi zona waktu otomatis diaktifkan, time_zone_detector
dapat berada di salah satu dari dua status: tidak pasti dan tertentu .
Ketika layanan time_zone_detector
berada dalam status tertentu, ini berarti layanan time_zone_detector
telah menerima informasi zona waktu yang kuat, yang dapat menyebabkannya menimpa zona waktu saat ini. Ketika tidak pasti, ini berarti tidak menerima informasi atau hanya informasi kepercayaan rendah, yang berarti tidak akan mengesampingkan zona waktu saat ini.
Status tertentu layanan time_zone_detector
dapat menyertakan status di mana time_zone_detector
tidak memiliki informasi zona waktu untuk digunakan, atau jika memiliki beberapa zona waktu untuk dipilih. Negara-negara tersebut adalah sebagai berikut:
- Negara tertentu dengan zona waktu nol dimasukkan ketika perangkat berada di suatu tempat tanpa zona waktu, seperti di perairan internasional atau di wilayah yang disengketakan. Status ini mirip dengan status tidak pasti, tetapi menunjukkan bahwa
time_zone_detector
tidak perlu mengambil tindakan lebih lanjut untuk mencoba menentukan zona waktu. - Negara tertentu dengan beberapa zona waktu dimasukkan di mana ada ambiguitas atau kondisi perbatasan. Dalam keadaan ini, jika zona waktu saat ini adalah salah satu dari zona waktu yang dipastikan oleh
time_zone_detector
, zona waktu saat ini dibiarkan apa adanya. Jika tidak, salah satu zona waktu yang tersedia akan digunakan. Ini memberikantime_zone_detector
elemen kelengketan jika pengguna telah memilih zona waktu mereka sebelumnya secara manual atau saat perangkat mendekati perbatasan.
Status pasti atau tidak pasti layanan time_zone_detector
ditentukan oleh saran zona waktu yang dikirim oleh origin .
Umumnya, saran datang dalam dua jenis yang sangat cocok dengan kemungkinan status time_zone_detector
: tertentu dan tidak pasti . Berikut ini adalah contoh jenis saran:
type = "tidak pasti", zoneIds = []
- Asal tidak tahu apa itu zona waktu.
type = "tertentu", zoneIds = ["Eropa/London"]
- Asal pasti zonanya adalah "Eropa/London".
type = "tertentu", zoneIds = []
- Asal pasti, tetapi tidak ada ID zona yang terkait dengan lokasi saat ini.
type = "tertentu", zoneIds = ["Amerika/Denver", "Amerika/Phoenix"]
- Asal yakin bahwa jawabannya adalah salah satu dari dua zona, tetapi tidak dapat memilih antara "Amerika/Denver" dan "Amerika/Phoenix".
Layanan time_zone_detector
memperlakukan urutan saran sebagai berbeda berdasarkan asalnya. Bergantung pada asalnya, saran mungkin juga berisi metadata yang menunjukkan seberapa pasti asalnya.
Layanan time_zone_detector
bersifat stateful, yang berarti layanan ini menyimpan catatan saran terbaru yang dibuat oleh masing-masing Origin. Saran baru dikirim ke layanan time_zone_detector
jika saran sebelumnya tidak lagi benar; yaitu, jika Origin sekarang memiliki saran yang berbeda, atau jika telah kehilangan kemampuan untuk mendeteksi zona waktu. Layanan time_zone_detector
mengevaluasi ulang saran baru dan yang sudah ada serta memperbarui status perangkat saat saran diterima.
Android mendukung dua asal untuk deteksi zona waktu:
- Telepon
- Lokasi
Layanan time_zone_detector
hanya menggunakan satu origin untuk menentukan zona waktu. Saat asal lokasi didukung pada perangkat, asal saat ini yang akan digunakan ditentukan berdasarkan pengaturan zona waktu yang dikonfigurasi oleh pengguna. Ketika asal saat ini menjadi tidak pasti dari zona waktu, time_zone_detector
tidak beralih ke asal yang berbeda. Saran yang terkait dengan Origin selain Origin saat ini dapat disimpan di memori oleh time_zone_detector
, tetapi tidak digunakan kecuali Origin saat ini berubah. Ketika pengguna mengubah pengaturan untuk deteksi zona waktu otomatis dan asal saat ini berubah, saran terbaru yang tersedia untuk asal baru akan digunakan.
Pengaturan zona waktu
Pengguna dapat mengaktifkan dan mengonfigurasi pengaturan untuk deteksi zona waktu otomatis di aplikasi Pengaturan AOSP.
Gambar 2. Deteksi zona waktu otomatis di Pengaturan.
Tabel berikut menjelaskan kontrol pengguna untuk deteksi zona waktu di aplikasi Pengaturan AOSP.
*Di Android 11 dan yang lebih rendah, setelan ini diberi label Gunakan zona waktu yang disediakan jaringan | |||
Lokasi Pengaturan AOSP | Nama Pengaturan AOSP | Cakupan | Perilaku |
---|---|---|---|
Sistem > Tanggal dan Waktu | Atur zona waktu secara otomatis* | Semua pengguna | Sebuah sakelar. Saat aktif , perangkat bertanggung jawab untuk mendeteksi zona waktu saat ini. Saat nonaktif , pengguna diberikan kontrol untuk menyetel zona waktu perangkat secara manual. |
Sistem > Tanggal dan Waktu | Gunakan lokasi untuk mengatur zona waktu | Pengguna saat ini | Sebuah sakelar. Tersedia dari Android 12. Pengalih ini hanya ditampilkan saat deteksi zona waktu lokasi didukung pada perangkat. |
Lokasi | Gunakan lokasi | Pengguna saat ini | Sebuah sakelar. Mengizinkan atau mencegah penggunaan lokasi perangkat secara umum. Nilai tersebut relevan jika deteksi zona waktu lokasi didukung pada perangkat. |
Berikut ini memberikan gambaran umum tentang perilaku perangkat untuk deteksi zona waktu berdasarkan pengaturan yang dipilih oleh pengguna:
[Tanggal dan Waktu] Atur zona waktu secara otomatis: OFF
- Pengguna harus memilih zona waktu secara manual.
[Tanggal dan Waktu] Atur zona waktu secara otomatis: ON
[Lokasi] Gunakan lokasi: OFF
- Sinyal telepon digunakan untuk mendeteksi zona waktu. (Lihat Catatan di bawah.)
[Lokasi] Gunakan lokasi: AKTIF
[Tanggal dan Waktu] Gunakan lokasi untuk mengatur zona waktu: AKTIF
- Lokasi digunakan untuk mendeteksi zona waktu.
[Tanggal dan Waktu] Gunakan lokasi untuk mengatur zona waktu: OFF
- Sinyal telepon digunakan untuk mendeteksi zona waktu. (Lihat Catatan di bawah.)
Beberapa perangkat pengguna
Karena beberapa pengaturan yang terlibat dicakupkan ke pengguna saat ini, perilaku deteksi zona waktu perangkat dapat berubah saat pengguna saat ini berubah pada perangkat Android multi-pengguna.
Pengalihan Gunakan lokasi untuk menyetel zona waktu dicakup untuk pengguna saat ini dan tidak dibatasi oleh kebijakan perangkat, artinya pengguna selalu dapat mengubah nilainya, bahkan saat sakelar Setel zona waktu secara otomatis mati atau jika waktu atau zona waktu lain mengontrol dibatasi oleh Device Policy Controller.
Perilaku saat mengubah ke dan dari deteksi otomatis
Saat pengguna mengalihkan deteksi zona waktu dari manual ke otomatis , time_zone_detector
mungkin sudah yakin dengan zona waktu saat ini. Jika demikian, saat pengguna mengaktifkan deteksi otomatis, zona waktu perangkat mungkin berubah pada saat yang sama agar sesuai dengan opini layanan time_zone_detector
.
Demikian pula, ketika pengguna membuat perubahan di Pengaturan yang mengakibatkan perubahan ke asal layanan time_zone_detector
saat ini, time_zone_detector
mungkin sudah menerima saran untuk asal baru sehingga waktu perangkat mungkin diubah agar sesuai dengan pendapat layanan time_zone_detector
dengan segera.
Deteksi zona waktu telepon
Deteksi zona waktu telepon menggunakan sinyal telepon untuk menentukan zona waktu saat ini. Untuk informasi lebih lanjut, lihat Deteksi Zona Waktu Telepon .
Deteksi zona waktu lokasi
Deteksi zona waktu lokasi tersedia di Android 12 atau lebih tinggi. Ini adalah fitur deteksi zona waktu otomatis opsional yang memungkinkan perangkat menggunakan lokasinya untuk menentukan zona waktu saat ini.
Layanan location_time_zone_manager
, yang diperkenalkan di Android 12, berjalan di server sistem dan berisi kode yang bertanggung jawab untuk mengirimkan saran asal lokasi ke layanan time_zone_detector
. Untuk informasi lebih lanjut, lihat Deteksi Zona Waktu Lokasi .
Pertimbangan adopsi fitur
Bagian ini menjelaskan aspek fitur deteksi zona waktu lokasi untuk membantu produsen perangkat menentukan apakah akan mengadopsi fitur tersebut pada perangkat.
Membandingkan telepon dan deteksi lokasi
Tabel berikut memberikan perbandingan keuntungan dan kerugian menggunakan lokasi daripada sinyal telepon untuk deteksi zona waktu.
Deteksi telepon | Deteksi lokasi | |
---|---|---|
Ketepatan | Bervariasi menurut negara. Tergantung pada MCC, kebenaran dan ketersediaan NITZ. | Tergantung pada konfigurasi fitur atau komponen plug-in. Kebenaran biasanya bervariasi menurut:
|
Keterbaruan | Deteksi telepon bergantung pada file yang terdapat dalam modul Data Zona Waktu yang dapat diperbarui (com.android.tzdata APEX). | Tergantung pada konfigurasi fitur atau komponen plug-in. Keterbaruan biasanya bergantung pada apakah perangkat menggunakan data peta zona waktu server atau klien. Catatan: Data peta zona waktu tidak terdapat dalam modul Data Zona Waktu yang digunakan untuk memperbarui salinan TZDB Android dan informasi zona waktu lainnya. Produsen perangkat juga harus mempertimbangkan konsistensi versi antara aturan zona waktu dan data peta zona waktu. |
Penggunaan daya | Tidak ada atau penggunaan daya rendah | Bergantung pada pengaturan lokasi pengguna, plugin yang digunakan, dan biasanya aplikasi lain yang meminta lokasi. |
Ketersediaan | Perangkat telepon saja. Biasanya membutuhkan SIM yang berfungsi. | Deteksi lokasi tergantung pada penyedia lokasi yang tersedia. |
Privasi pengguna
Zona waktu pilihan pengguna biasanya ditentukan oleh lokasi geografis mereka. Lokasi adalah data sensitif. Pengguna mungkin khawatir tentang pengetahuan tentang lokasi mereka yang dibagikan sebagai bagian dari deteksi zona waktu. Tidak terkait dengan deteksi zona waktu, semua aplikasi yang berjalan di perangkat dapat membaca zona waktu perangkat saat ini tanpa memerlukan izin Android, dan aplikasi dapat menyimpulkan gagasan yang tidak tepat tentang lokasi perangkat dari informasi ini.
Lebih khusus lagi, deteksi zona waktu dapat bekerja melalui cara pasif atau aktif:
- Pasif: Sesuatu di lingkungan perangkat memberi tahu perangkat zona waktu yang akan digunakan di lingkungan itu.
- Aktif: Perangkat harus bekerja di luar zona waktu untuk dirinya sendiri dan bergantung pada pengaturan privasi pengguna dan persetujuan mereka, memperoleh lokasi perangkat untuk melakukannya. Kemudian dapat membagikan lokasinya dengan layanan eksternal. Lihat diskusi di bawah untuk detail tentang privasi dan persetujuan pengguna.
Deteksi pasif, seperti dengan asal telepon, tidak memiliki implikasi privasi tambahan bagi pengguna.
Deteksi aktif, seperti dengan asal lokasi, melibatkan penentuan lokasi perangkat, yang mungkin tidak ingin disetujui oleh pengguna, dan lokasi dapat dikirim melalui jaringan untuk menentukan ID zona waktu.
Pendekatan Android terhadap privasi pengguna untuk deteksi zona waktu memberi pengguna kemampuan untuk menonaktifkan asal yang diharapkan aktif satu per satu. Selain itu, kode platform AOSP tidak berhubungan langsung dengan lokasi itu sendiri: deteksi lokasi dan pemetaan lokasi ke ID zona waktu diserahkan kepada komponen plug-in yang dikonfigurasi oleh produsen perangkat.
Untuk detail selengkapnya tentang fitur privasi pengguna, lihat Deteksi Zona Waktu Lokasi .
Debug dan pengujian zona waktu
Bagian ini memberikan informasi tentang cara men-debug dan menguji perilaku layanan time_zone_detector
dan komponen lain yang dibagikan oleh semua asal.
Mengonfigurasi perangkat menggunakan layanan device_config
Layanan device_config
adalah mekanisme yang digunakan pada Android untuk mengonfigurasi perilaku yang dapat dimodifikasi menggunakan nilai yang biasanya diambil dari server jarak jauh dengan kode kepemilikan (non-AOSP). Saat menggunakan nilai device_config
untuk pengujian, terutama selama pengujian manual yang berjalan lama, perangkat mungkin menyinkronkan flag, yang akan menyetel ulang flag dan menghapus nilai yang ditetapkan untuk pengujian.
Di Android 12 atau lebih tinggi, untuk mencegah sinkronisasi bendera sementara, gunakan:
adb shell cmd device_config set_sync_disabled_for_tests persistent
Untuk memulihkan sinkronisasi bendera setelah pengujian, gunakan:
adb shell cmd device_config set_sync_disabled_for_tests none
Setelah memulihkan sinkronisasi bendera, reboot perangkat.
Untuk informasi lebih lanjut, gunakan $ adb shell cmd device_config help
.
Berinteraksi dengan layanan time_zone_detector
Untuk melihat konfigurasi time_zone_detector
dan status layanan time_zone_detector
, gunakan:
adb shell cmd time_zone_detector dump
Untuk melihat perintah tambahan untuk debugging dan pengujian deteksi zona waktu, gunakan:
adb shell cmd time_zone_detector help
Output bantuan juga menjelaskan properti layanan device_config
yang dapat digunakan untuk mempengaruhi perilaku layanan time_zone_detector
untuk pengujian atau produksi. Untuk detailnya, lihat Mengonfigurasi perangkat menggunakan layanan device_config .
Untuk memvalidasi deteksi zona waktu, penguji harus mengetahui asal mana yang digunakan oleh time_zone_detector
. Untuk memahami dan memengaruhi asal time_zone_detector
saat ini, gunakan salah satu opsi berikut:
- Periksa secara visual melalui Pengaturan UI. Untuk informasi lebih lanjut, lihat Pengaturan zona waktu .
Gunakan baris perintah melalui adb:
- Untuk membuang status
time_zone_detector
, gunakanadb shell cmd time_zone_detector dump
- Untuk mengubah pengaturan perangkat, gunakan perintah
time_zone_detector
lainnya. Untuk informasi lebih lanjut, gunakanadb shell cmd time_zone_detector help
.
- Untuk membuang status
Berikut ini adalah contoh keluaran dari perintah adb shell cmd time_zone_detector dump
, dengan informasi tentang asal dan status layanan saat ini dicetak tebal:
$ 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:
...
Informasi tersebut dapat diartikan sebagai berikut:
Kunci | Nilai |
---|---|
mUserConfigAllowed | Apakah pengguna dicegah untuk mengontrol pengaturan tanggal dan waktu oleh Device Policy Controller . |
mTelephonyDetectionSupported | Apakah perangkat memiliki deteksi zona waktu telepon. |
mGeoDetectionSupported | Apakah perangkat memiliki deteksi zona waktu lokasi. Ini adalah status efektif berdasarkan konfigurasi dan keberadaan setidaknya satu LTZP. |
mAutoDetectionEnabled | Apakah deteksi zona waktu otomatis diaktifkan. |
mLocationEnabled | Tombol lokasi utama. |
mGeoDetectionEnabled | Sakelar asal: `false` menunjukkan asal telepon, dan `true` menunjukkan asal lokasi. |
Informasi riwayat saran menunjukkan saran apa yang telah dibuat melalui Pengaturan (manual), dan oleh telepon dan asal lokasi.