在android中检测设备时钟修改

在android中检测设备时钟修改,android,broadcastreceiver,Android,Broadcastreceiver,为了实现我的功能,我参考了以下url 我希望在应用程序中的脱机模式下使用此功能。但似乎即使我回到原来的时间,它也会触发广播 对同一个问题有什么解决办法吗?解决这个问题的一种方法就是去抖动它。如果你改变时间,你知道在接下来的几百毫秒内,你会因为它得到另一个广播。因此,在接收器中有一个默认为false的静态布尔值。当您自己更改时间时,请将其设置为true。当您收到广播时,请检查标志。如果为false,请将时间更改回原来的时间。如果为true,则将标志设置为false并忽略此广播。当您自己更改时间时

为了实现我的功能,我参考了以下url

我希望在应用程序中的脱机模式下使用此功能。但似乎即使我回到原来的时间,它也会触发广播


对同一个问题有什么解决办法吗?

解决这个问题的一种方法就是去抖动它。如果你改变时间,你知道在接下来的几百毫秒内,你会因为它得到另一个广播。因此,在接收器中有一个默认为false的静态布尔值。当您自己更改时间时,请将其设置为true。当您收到广播时,请检查标志。如果为false,请将时间更改回原来的时间。如果为true,则将标志设置为false并忽略此广播。

当您自己更改时间时,将其设置为true。-这将在每隔一次未收到广播时发生。因为你在自己设置之前检查了这个标志,如果它是真的,你就不设置它——你只是把这个标志设为假。因此跳过了来自此应用程序的任何内容。我想我从另一个角度得到了您的解决方案。当我转到“设置->日期时间”并更改时间时,会触发广播,并显示“设备时间被篡改”。现在,祝酒词差不多都在听筒里了。这是正确的。现在,我按下主页按钮,转到设置。将其更改回原始时间。再次触发应停止的广播。因为现在时间是正确的啊,好的。我以为你的意思是你的广播接收器本身在把它换回来,而不是用户。那就有点困难了-你需要知道正确的时间是什么,看看用户是否把它改回去了。这就要求你从一开始就要跟踪它是什么,并记住时间应该是什么。然后,当你得到一个广播,你得到当前时间,看看它是否改变为(大约)你期望的时间。如果是这样,你就忽略它,如果不是这样,你就开始祝酒。