android检测用户修改设备时钟时间

时间:2011-10-24 15:03:46

标签: android datetime android-ndk

我的应用程序需要正确的时间(不能依赖设备时间,因为用户可以更改它+运营商可能不可用或不支持NITZ)。最初我使用http调用到受信任的服务器,但有时网络不可用。

我还可以使用其他选项吗?

我可以依靠广播ACTION_TIME_CHANGED来检测用户是否修改了设备时钟?我的应用程序是否总是需要运行才能收到此通知(我想避免这种情况)?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

我的应用需要正确的时间

永远不要依赖客户在任何平台上获得准确的时间。

  

最初我使用http调用到受信任的服务器,但是在某些情况下网络不可用。

根据定义,你无法获得准确的时间。

  

我还可以使用其他选项吗?

您可以创建自己的固件,以防止用户设置时间。

  

我可以依靠广播ACTION_TIME_CHANGED来检测用户是否修改了设备时钟?

不,只要有几个可能的原因可以发送广播。

  

我的应用程序是否总是需要运行以获取此通知(我想避免这种情况)?

我可以告诉你,我在Android源代码中看到的ACTION_TIME_CHANGED的唯一接收者是通过registerReceiver()注册的,而不是清单。但是,此广播不符合通常需要registerReceiver()的模式。你试试它可能更简单。