時間總覽

本頁面說明 Android 上時間和時區偵測功能的運作方式。這包括 Android 如何自動偵測時間和時區、裝置製造商的設定選項,以及測試資訊。

時間和時區總覽

為在狀態列等位置顯示使用者的本地時間,Android 會追蹤兩個相關但獨立的狀態:

  • 目前的 Unix 紀元時間
  • 目前的時區

目前的 Unix 紀元時間和目前時區是裝置層級狀態,也就是說,裝置的所有使用者都會共用這些狀態。

目前的 Unix 紀元時間並非固定值。並會自動更新,以反映時間的流逝。除了正常的時間流逝之外,如果發現裝置的目前 Unix 紀元時間不正確 (例如裝置沒電後),系統會調整該時間。

目前的時區會決定要進行的調整,以便將目前的 Unix 紀元時間轉換為當地時間。舉例來說,在洛杉磯的夏季,裝置會從目前的 Unix 紀元時間減去 7 小時,在冬季則會減去 8 小時。

為支援這些本機時間計算作業,所有 Android 裝置都會提供所有全球時區規則的資料庫。如要進一步瞭解時區規則,請參閱「時區規則」。

當使用者前往使用不同時區的新地點時,目前的 Unix 紀元時間不需要調整,但使用者通常會想查看當地時間,而不是先前所在地點的時間。變更目前的時區,可確保系統會將正確的偏移量套用至目前的 Unix 紀元時間,以便顯示新位置的正確當地時間。

AOSP 可讓使用者自行控制是否要透過下列機制自動設定時間和時區。

  • 自動時間偵測:確保裝置具有正確的目前 Unix 紀元時間。
  • 自動偵測時區:確保裝置的時區正確無誤。

自動偵測時間

本節將概略說明 time_detector 服務,該服務可管理自動時間偵測、使用者控制項、設定選項和測試詳細資料。

time_detector 服務

time_detector 服務會在搭載 Android 10 以上版本的裝置上執行,用於管理自動時間偵測功能。啟用自動時間偵測功能時,這項服務會視需要調整裝置目前的 Unix 紀元時間。

time_detector 服務一律處於以下兩種狀態之一:不確定確定。服務的確定或不確定狀態,取決於從各種來源收到的時間建議

time_detector 服務確定已收到含有 Unix 紀元時間資訊的建議時,如果時間建議與目前的 Unix 紀元時間不同,就會覆寫目前的 Unix 紀元時間。

time_detector 不確定時,不會覆寫目前的時間。未知狀態通常表示 time_detector 服務未收到時間建議。如果 time_detector 服務收到的建議過舊,系統就會變得無法確定。系統會考量建議的時間,因為使用舊版 Unix 紀元時間建議進行調整時,會依賴裝置上經過的即時時鐘,而這項資訊在長時間後可能會變得不準確。

為了自動建立目前的 Unix 紀元時間,裝置會使用各種來源。在本文件中,這些資源稱為「來源」time_detector 服務會根據建議來源,將建議序列視為不同的項目。

time_detector 服務具有狀態,也就是說,系統會記錄每個來源提供的最新建議。如果來源有較新的 Unix 紀元時間資訊,就會向 time_detector 提供新的建議。time_detector 服務會重新評估新舊建議,並在收到建議時更新裝置狀態。

雖然世界標準時間是國際認可的時間,但對於 Android 裝置來說,建立目前的 Unix 紀元時間並非一項簡單的作業,原因如下:

  • Unix Epoch 紀元時間與世界標準時間的計時系統略有不同。在兩者之間轉換時,您必須瞭解超額秒發生的時間,以及來源如何處理超額秒。
  • 來源可能僅在特定時間或特定情況下提供。舉例來說,如果來源需要網路連線,則可能只有在裝置連上網際網路時才能使用。
  • 來源可能不準確、不精確或有誤。舉例來說,如果電話服務的基地台無法正確追蹤「世界標準時間」,電話服務來源可能會提供不準確的時間建議。
  • 取得 Unix 紀元時間時,可能會出現不準確的情況。舉例來說,網路延遲、緩衝或程序排程可能會導致 Unix 紀元時間不準確。
  • 用於調整建議所經過時間的參考時鐘,自收到建議後可能會不準確。

AOSP 預設會使用兩個主要的時間偵測來源:

  • 網路使用網路時間通訊協定 (NTP) 時間伺服器。
  • 電話通訊:使用網路識別和時區 (NITZ) 電話通訊信號。

電話和網路來源都需要連上外部網路,但這類網路不一定隨時可用。

自 Android 12 起,Android 也支援下列來源,但預設不會設定為使用:

  • GNSS使用 GPS 位置供應器,從 GNSS 來源取得時間。
  • 外部通用來源,可讓裝置製造商整合自己的 Unix 紀元時間來源。

時間設定

使用者可以在 AOSP 設定應用程式中,依序點選「系統」>「日期與時間」,啟用自動時間偵測功能。

在「設定」中自動偵測時間

圖 1. 在「設定」中自動偵測時間。

下表說明 AOSP 設定應用程式中時間偵測的使用者控制項。

*在 Android 11 以下版本中,此設定的名稱為「Use network-provided time」

AOSP 設定位置 AOSP 設定名稱 範圍 行為
系統 > 日期和時間 自動設定時間* 所有使用者

切換按鈕。

on 時,裝置會負責偵測目前的 Unix 紀元時間。設為「關閉」時,使用者可透過控制項手動設定裝置時間。

使用者手動輸入時間時,會輸入當地時間,而不是 Unix 紀元時間。系統會使用目前的時區來推算 Unix 紀元時間,進而計算出目前的 Unix 紀元時間。

設定

裝置製造商可以透過各種方式設定 time_detector 服務,例如使用哪些來源,以及如何為來源信號排定優先順序。

來源優先順序

自 Android 12 起,裝置製造商可以變更 core/res/res/values/config.xml 設定檔,指定自動時間偵測功能要納入哪些時間來源,以及 time_detector 考量這些來源的優先順序。

對於搭載 Android 11 以下版本的裝置,來源優先順序會硬式編碼為 ["telephony", "network"],也就是說,電話建議會優先於網路建議。

預設的 AOSP 設定如下:

<!-- 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 中,網路和電話建議會預設為使用來源。網路時間建議會優先於電話時間建議。裝置製造商可以變更來源順序,將行為還原為 Android 11 以下版本的行為,在該版本中,電話服務會獲得較高的優先順序。

根據預設,如果最高優先順序的有效建議與裝置目前的系統時鐘時間相差不超過幾秒,裝置時間「不會」變更。這麼做是為了避免為安裝的應用程式 (會監聽 ACTION_TIME_CHANGED 意圖) 建立工作。

允許的來源值如下:

允許的時間範圍

Android 14 為 time_detector 服務收到的時間建議,引入了上限時間限制。如果裝置支援 32 位元程序,架構會設定上限時間邊界,避免裝置使用可能觸發 Y2038 問題的時間建議。

Android 12 推出了較短的時間限制,用於驗證 time_detector 服務收到的時間建議。系統會根據建構時間戳記,設定用於自動建議的較低時間限制值。這項功能的運作原理是,有效時間不得早於裝置的系統映像檔建構時間。如果時間建議值低於下限,time_detector 服務會捨棄建議值,因為如果建構時間戳記正確,建議值就不會有效。

如果是搭載 Android 11 以下版本的裝置,time_detector 服務不會驗證傳入的 Unix 紀元時間建議。

偵錯和測試時間

本節將說明如何偵錯及測試 time_detector 服務和所有來源共用的其他元件的行為。

與 time_detector 服務互動

如要查看 time_detector 服務的設定和狀態,請使用:time_detector

adb shell cmd time_detector dump

如要查看用於偵錯及測試時區偵測的其他指令,請使用:

adb shell cmd time_detector help

說明輸出內容也會說明 device_config 服務屬性,可用於影響 time_detector 在測試或實際環境中的行為。詳情請參閱「使用 device_config 服務設定裝置」。

如要驗證自動時間偵測功能,測試人員必須瞭解 time_detector 服務使用的來源。以下是 adb shell cmd time_detector dump 指令的輸出內容範例,其中以粗體字顯示目前來源和服務狀態的資訊:

$ 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:
    ...

這項資訊的解讀方式如下:

mEnvironment.isAutoTimeDetectionEnabled() 是否啟用自動時間偵測功能。
mEnvironment.autoTimeLowerBound() 用於驗證時間建議的目前下限。
mEnvironment.autoOriginPriorities() 使用中的來源和優先順序。

時間變更記錄會指出 time_detector 服務變更裝置目前 Unix 紀元時間的時間。

建議記錄資訊會指出每個來源提供的建議。

自動偵測時區

本節將概略說明 time_zone_detector 服務,該服務可管理自動偵測時區、設定中的使用者控制項、電話和位置時區偵測功能,以及測試詳細資料。

time_zone_detector 服務

time_zone_detector 服務會在搭載 Android 11 以上版本的裝置上執行,用於管理自動時區偵測功能。啟用自動時區偵測功能時,這項功能會視需要調整裝置目前的時區。

啟用自動時區偵測功能後,time_zone_detector 可能處於下列兩種狀態之一:不確定確定

如果 time_zone_detector 服務處於特定狀態,表示 time_zone_detector 服務已收到強力時區資訊,可能會導致服務覆寫目前的時區。如果不確定,表示系統未收到任何資訊,或只收到信心值偏低的資訊,因此不會覆寫目前的時區。

time_zone_detector 服務的特定狀態可能包括 time_zone_detector 沒有可用的時區資訊,或是有多個可供選擇的時區。這些狀態如下所示:

  • 裝置位於沒有時區的區域 (例如國際水域或有爭議的地區) 時,系統會進入沒有時區的特定狀態。此狀態類似於不明確狀態,但表示 time_zone_detector 不需要採取進一步行動,嘗試判斷時區。
  • 在有模糊或邊界條件的情況下,會輸入具有多個時區的特定狀態。在這個狀態下,如果目前的時區是 time_zone_detector 確定的時區之一,則會保留目前的時區。否則,系統會使用可用的時區。如果使用者先前手動選取時區,或是裝置接近邊界,time_zone_detector 就會保留該元素。

time_zone_detector 服務的確定或不確定狀態,是由演算法傳送的時區建議決定。

一般來說,建議分為兩種類型,與 time_zone_detector 的可能狀態相近:確定不確定。以下是建議類型的範例:

  • type = uncertain, zoneIds = []

    • 演算法不知道時區為何。
  • type = certain, zoneIds = ["Europe/London"]

    • 演算法確定可用區為 Europe/London。
  • type = certain, zoneIds = []`

    • 演算法已確定,但目前位置沒有任何可用區 ID 可供使用。
  • type = certain, zoneIds = ["America/Denver", "America/Phoenix"]

    • 演算法確定答案是兩個時區之一,但無法在「America/Denver」和「America/Phoenix」之間做出選擇。

time_zone_detector 服務會根據演算法,將建議序列視為獨立的項目。視演算法而定,建議內容可能會包含表示演算法可信度程度的中繼資料。

time_zone_detector 服務具有狀態,也就是說,它會記錄每個演算法提供的最新建議。如果先前的建議不再正確,也就是演算法現在有不同的建議,或是無法偵測時區,系統就會將新的建議傳送至 time_zone_detector 服務。time_zone_detector 服務會重新評估新舊建議,並在收到建議時更新裝置狀態。

Android 支援兩種時區偵測演算法:

  • 電話通訊系統
  • 位置

time_zone_detector 服務通常會使用單一演算法來判斷時區。如果裝置支援位置演算法,系統會根據使用者設定的時區設定,決定裝置使用的演算法。如果使用中的演算法無法確定時區,time_zone_detector 通常不會採用不同演算法提供的建議。time_zone_detector 可儲存與未使用的演算法相關聯的建議,但除非演算法有所變更,否則不會使用這些建議。當使用者變更自動偵測時區的設定,且演算法也隨之變更時,系統會使用新演算法可用的最新建議。

如要進一步瞭解使用多種演算法判斷時區的情況,請參閱「電話備用模式」。

電話備用模式

在搭載 Android 13 以上版本的裝置上,time_zone_detector 服務支援電話備用模式。在位置偵測無法偵測時區,或位置偵測偵測時區所需的時間比通訊偵測所需的時間還長的情況下,Android 會暫時使用通訊偵測建議。

電話服務備用模式適用於同時支援電話服務和位置偵測的裝置,且使用者已在時區設定中啟用「使用位置設定時區」。裝置重新啟動及停用飛航模式時,系統會自動啟用此模式。

在 Android 14 以上版本中,可以透過 LTZP 狀態回報 API 觸發電話服務備用模式,也就是說,如果 LTZP 回報不確定其偵測位置或時區的能力因環境而降低,系統就會觸發電話服務備用模式。

在電話服務備用模式下,time_zone_detector 服務會使用電話建議,就像位置偵測功能已停用一樣,直到位置演算法提供特定建議為止。收到特定建議後,系統會停用電話服務備用模式,並專門使用位置建議。

如要瞭解電話服務備用模式的設定詳細資料,請參閱「時區偵測設定」。

時區設定

使用者可以在 AOSP 設定應用程式中啟用並設定自動時區偵測功能。

在「設定」中自動偵測時區

圖 2. 在「設定」中自動偵測時區。

下表說明 AOSP 設定應用程式中時區偵測功能的使用者控制項。

*在 Android 11 以下版本中,這項設定的名稱為「使用網路提供的時區」

AOSP 設定位置 AOSP 設定名稱 範圍 行為
系統 > 日期和時間 自動設定時區* 所有使用者

切換按鈕。

設為「開啟」時,裝置會負責偵測目前的時區。設為「關閉」時,使用者可手動設定裝置的時區。

系統 > 日期和時間 使用位置資訊設定時區 目前使用者

切換按鈕。

適用於 Android 12 以上版本。只有在裝置支援位置時區偵測功能時,才會顯示這個切換鈕。

如要瞭解 Android 14 中所導入的變更,請參閱「 僅支援位置時區偵測的裝置」。

位置 使用位置資訊 目前使用者

切換按鈕。

允許或禁止使用裝置的位置資訊。如果裝置支援位置時區偵測,則該值就會相關。

以下概略說明裝置在使用者選擇的設定下,如何偵測時區:

  • [日期和時間] 自動設定時區:關閉

    • 使用者必須手動選取時區。
  • [日期和時間] 自動設定時區:開啟

    • [位置] 使用位置資訊:關閉

      • 使用電話信號偵測時區。
    • [位置] 使用位置資訊:開啟

      • [日期和時間] 使用位置資訊設定時區:開啟

        • 位置資訊用於偵測時區。
      • [日期和時間] 使用位置資訊設定時區:關閉

        • 使用電話信號偵測時區。

多部使用者裝置

由於其中幾項設定的範圍是目前使用者,因此當多用戶 Android 裝置上的目前使用者變更時,裝置的時區偵測行為可能會變更。

「使用位置設定時區」切換鈕的範圍為目前使用者,且不受裝置政策限制,也就是說,即使「自動設定時區」切換鈕關閉,或其他時間或時區控制項受裝置政策控制器限制,使用者仍可隨時變更切換鈕的值。

僅支援位置時區偵測演算法的裝置

本節說明僅支援位置演算法的裝置行為。

  • Android 14 以上版本

    • AOSP 設定應用程式不會向使用者顯示「使用位置」選項,而且裝置的行為就像已啟用「使用位置」選項一樣。
    • 系統會忽略使用者範圍 SettingsProvider 設定 location_time_zone_detection_enabled 的值。這個值會記錄使用者在其他類型裝置上的偏好設定。
  • Android 12 或 Android 13

    • 使用者可以在 AOSP 設定應用程式中看到「使用位置資訊」選項,並且可以停用該選項。如果停用這個選項,裝置就不會自動偵測時區。

切換至自動偵測和從自動偵測切換時的行為

當使用者將時區偵測功能從「手動」切換為「自動」時,time_zone_detector 可能已確定目前的時區。如果是這樣,當使用者啟用自動偵測功能時,裝置的時區可能會同時變更,以符合 time_zone_detector 服務的意見。

同樣地,當使用者在「設定」中變更設定,導致 time_zone_detector 服務的目前演算法有所變更時,time_zone_detector 可能已收到新演算法的建議,因此裝置的時間可能會立即變更,以符合 time_zone_detector 服務的意見。

電話時區偵測

電話時區偵測功能會使用電話信號判斷目前的時區。詳情請參閱「電話時區偵測」一文。

位置時區偵測

位置時區偵測功能適用於 Android 12 以上版本。這是可選的自動偵測時區功能,可讓裝置根據所在位置判斷目前的時區。

在 Android 12 中推出的 location_time_zone_manager 服務會在系統伺服器中執行,並包含負責將位置演算法建議提交至 time_zone_detector 服務的程式碼。詳情請參閱「位置時區偵測」。

功能採用注意事項

本節將說明位置時區偵測功能的各個面向,協助裝置製造商決定是否要在裝置上採用這項功能。

比較電話和位置偵測

下表比較了使用位置資訊 (而非電話信號) 做為時區偵測依據的優缺點。

電話偵測 位置偵測
正確性 隨國家而異。

視 MCC、NITZ 的正確性和可用性而定。
取決於功能設定或外掛元件。

準確度通常會因下列因素而異:
  • 定位供應工具的精確度和規律性。
  • 時區對應資料的品質。
可更新性 通訊錄偵測功能會使用可更新的時區資料模組 (com.android.tzdata APEX) 中的檔案。 取決於功能設定或外掛元件。

更新可用性通常取決於裝置是否使用伺服器或用戶端時區對應資料。

注意:用於更新 Android 的 TZDB 副本和其他時區資訊的時區資料模組中,並未包含時區對應資料。

裝置製造商也必須考量時區規則和時區對應資料之間的版本一致性。
電力使用量 不耗電或耗電量低 取決於使用者的所在位置設定、使用的外掛程式,以及其他應用程式要求的位置資訊。
適用地區 僅限電話裝置。通常需要使用可正常運作的 SIM 卡。 位置偵測功能的運作取決於可用的定位供應器。
使用者隱私

使用者偏好的時區通常會根據其地理位置判定。位置屬於機密資料。使用者可能會擔心自己的位置資訊會在時區偵測期間分享出去。與時區偵測無關,在裝置上執行的所有應用程式都能讀取裝置目前的時區,且無須 Android 權限,應用程式也可以根據這項資訊推斷裝置位置,但不一定準確。

具體來說,時區偵測功能可透過主動或被動方式運作:

  • 被動:裝置環境中的某些元素會告知裝置在該環境中使用的時區。
  • 主動:裝置必須自行計算時區,並根據使用者的隱私權設定和同意聲明,取得裝置的位置資訊,然後與外部服務分享位置資訊。如要進一步瞭解使用者隱私權和同意聲明,請參閱下文。

使用被動偵測 (例如使用電話服務演算法) 不會對使用者造成額外的隱私權影響。

主動偵測 (例如位置演算法) 會判斷裝置的位置,而使用者可能不願意同意這項要求,而且位置資訊可能會透過網路傳送,以便判斷時區 ID。

Android 針對時區偵測功能的使用者隱私權做法,可讓使用者個別停用預期會啟用的演算法。此外,AOSP 平台程式碼不會直接處理位置資訊本身:位置偵測和將位置對應至時區 ID 的作業,會交由裝置製造商設定的元件插件處理。

如要進一步瞭解使用者隱私權功能,請參閱「位置時區偵測功能」。

設定

裝置製造商可以設定 time_zone_detector 服務,以變更其行為。本節說明 time_zone_detector 服務的一般行為設定選項。如需電話通訊和時區偵測演算法的設定詳細資料,請參閱「電話通訊時區偵測」和「位置時區偵測」。

基本 Android 開放原始碼計畫設定位於 frameworks/base/core/res/res/values/config.xml

設定鍵 Android 開放原始碼計畫值 說明
config_supportTelephonyTimeZoneFallback true true 時,time_zone_detector 會使用電話服務備用模式。這項功能適用於 Android 13 以上版本。

變更裝置的預設行為

在 AOSP 中,預設會啟用自動偵測時區功能,並將 auto_time_zone 設定設為 true。如要停用預設的自動時間偵測功能,請將 frameworks/base/packages/SettingsProvider/res/values/defaults.xml 中定義的 def_auto_time_zone 值設為 false

從其他裝置還原備份時,架構預設會更新 auto_time_zone 設定的值。如要確保系統不會從備份還原這項設定,請在 frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml 中定義的 restore_blocked_global_settings 陣列中加入 auto_time_zone

時區偵錯和測試

本節提供有關如何偵錯及測試 time_zone_detector 服務和其他由所有演算法共用的元件行為的資訊。

使用 device_config 服務設定裝置

device_config 服務是 Android 上用來設定可修改行為的機制,通常會透過專屬 (非 AOSP) 程式碼從遠端伺服器擷取值。使用 device_config 值進行測試時,尤其是在長時間執行手動測試期間,裝置可能會同步處理標記,這會重設標記並清除測試設定的值。

如要在 Android 12 以上版本中暫時避免標記同步處理,請使用:

adb shell cmd device_config set_sync_disabled_for_tests persistent

如要在測試後還原旗標同步處理,請使用:

adb shell cmd device_config set_sync_disabled_for_tests none

還原標記同步功能後,請重新啟動裝置。

如需更多資訊,請使用 $ adb shell cmd device_config help

與 time_zone_detector 服務互動

如要查看 time_zone_detector 服務的 time_zone_detector 設定和狀態,請使用:

adb shell cmd time_zone_detector dump

如要查看用於偵錯及測試時區偵測的其他指令,請使用:

adb shell cmd time_zone_detector help

說明輸出內容也會說明 device_config 服務屬性,可用於影響 time_zone_detector 服務的行為,以便進行測試或在實際環境中使用。詳情請參閱「使用 device_config 服務設定裝置」。

如要驗證時區偵測功能,測試人員必須瞭解 time_zone_detector 使用的演算法。如要瞭解並影響 time_zone_detector 目前的演算法,請使用下列其中一種方法:

  • 透過「設定」使用者介面查看。詳情請參閱「時區設定」。
  • 透過 ADB 使用指令列:

    • 如要轉儲 time_zone_detector 狀態,請使用 adb shell cmd time_zone_detector dump
    • 如要變更裝置設定,請使用其他 time_zone_detector 指令。如需更多資訊,請使用 adb shell cmd time_zone_detector help

以下是 adb shell cmd time_zone_detector dump 指令的輸出內容範例,其中以粗體字顯示目前演算法和服務狀態的相關資訊:

$ 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:
...

這項資訊的解讀方式如下:

mUserConfigAllowed 是否要禁止使用者透過 Device Policy Controller 控制日期和時間設定。
mTelephonyDetectionSupported 裝置是否具備電信時區偵測功能。
mGeoDetectionSupported 裝置是否支援位置時區偵測。這是根據設定至少一個 LTZP 的存在情況,所產生的有效狀態。
mAutoDetectionEnabled 是否已啟用自動偵測時區功能。
mLocationEnabled 主要位置切換鈕。
mGeoDetectionEnabled 演算法切換鈕:false 代表電話服務演算法,true 代表位置演算法。

建議記錄資訊會指出系統透過設定 (手動) 和電話和位置演算法提供的建議。