我的应用程序需要正确的时间(不能依赖设备时间,因为用户可以更改它+运营商可能不可用或不支持NITZ)。最初我使用http调用到受信任的服务器,但有时网络不可用。
我还可以使用其他选项吗?
我可以依靠广播ACTION_TIME_CHANGED来检测用户是否修改了设备时钟?我的应用程序是否总是需要运行才能收到此通知(我想避免这种情况)?
谢谢!
答案 0 :(得分:2)
我的应用需要正确的时间
永远不要依赖客户在任何平台上获得准确的时间。
最初我使用http调用到受信任的服务器,但是在某些情况下网络不可用。
根据定义,你无法获得准确的时间。
我还可以使用其他选项吗?
您可以创建自己的固件,以防止用户设置时间。
我可以依靠广播ACTION_TIME_CHANGED来检测用户是否修改了设备时钟?
不,只要有几个可能的原因可以发送广播。
我的应用程序是否总是需要运行以获取此通知(我想避免这种情况)?
我可以告诉你,我在Android源代码中看到的ACTION_TIME_CHANGED的唯一接收者是通过registerReceiver()
注册的,而不是清单。但是,此广播不符合通常需要registerReceiver()
的模式。你试试它可能更简单。