Android似乎没有提供一种方法让用户应用程序更改系统时间。相反,我想要做的是让用户更改时间。打开日期和时间设置很容易:
startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));
我想知道的是:
- 是否可以直接链接到设置时间选项?
- 是否可以检查用户正确设置了时间?我知道有
TIME_CHANGED
广播消息,但我找不到任何文档。
TIME_CHANGED
广播消息没有提供有关其如何更改的任何信息。虽然这并没有明确记录,但我尝试使用 getData
和 getExtras
,但没有收到任何信息。此外,查看 文档 的其余部分,似乎除非明确记录,否则不会传递任何数据或额外信息。同样,ACTION_DATE_SETTINGS
实际上已被 记录 不需要输入,并且它隐含地不包含额外信息,因此无法更精确地控制它。
CommonsWare 指出了对我来说本应显而易见的事情——仅仅检查用户是否将时间设置为从服务器检索到的值,而不担心选项菜单中所花费的时间,几乎总是有效的。尽管这种假设实际上可能是错误的,如果我使用这种方法,那么我会确保消息表明时间可能被正确或不正确地设置,而不是使用明确的语句。
然而,我发现了elapsedRealtime,因此我将实际上正确地实现此检测。