我想做什么

我目前正在使用

创建应用程序,而我正处于十字路口 . 我在iPhone上使用谷歌 Map 应用程序,它会在晚上的某个时间自动切换到夜间模式 . 问题是我不知道用哪种方法来确定时间 .

我怎么想这样做

我想到了一些选项来确定夜间模式何时应该激活,但它们看起来都不准确或部分有缺陷:

  • 使用地理定位的日落时间然后触发夜间模式 . 请参阅我的编辑,了解下面的黄昏时间 .

  • 虽然我认为这提供了很高的准确性,但我注意到时间略有偏差:请参阅 Data 编辑进行时间比较 .

  • 在设备上使用内置传感器/摄像头 .

  • 虽然这可能有效,但由于照明因用户环境而异,因此本质上存在缺陷 . 不断改变房间之间的主题肯定会惹恼用户 .

  • 我也不确定每种设备内置了哪种传感器 . 我知道iPhone有一个环境光传感器,但我不确定其他设备有哪些传感器(特别是Androids) .

截至目前,我最好的方法是使用两者的组合:基于日落,设计一种采用日落时间的算法和使用内置传感器/相机的时间缓冲,以确定环境光线何时落下一个特定的限制 . 如果设备没有光传感器,那么我将简单地回溯到用户地理定位的日落时间 .

问题

所以我的问题仍然是我的问题的 Headers : How does Google Maps decide when the theme should change to/from Night Mode on a device?

另外(但不是必需的):

是否采用任何方法来帮助开发人员轻松完成此任务?

附:我不确定哪个标签适用于夜间模式/黑暗主题(或其他任何人称之为),所以如果您有任何建议,请告诉我(我认为没有必要创建新标签) .



编辑

黄昏时间

正如Herb Wolfe在我的问题下面的评论中所建议的那样,也许谷歌正在利用黄昏时间来切换主题 . 我绝对可以将其添加到我现有的逻辑中,以使其更准确 . 有关详细信息,请参阅下面的 Data 编辑 .


数据

当我有机会时,它会慢慢发布在这里 . 通过Google检索以下日落和黄昏时间(请参阅下面的 Sources ) . 平均值是当天日落和黄昏时间之间的平均值 . 主题时间由我手动收集 .

Date              Sunset     Dusk       Average    Theme
May 5th, 2018     8:25PM     8:57PM     8:41PM     8:40PM
May 29th, 2018    8:50PM     9:25PM     9:07:30PM  9:06PM

来源