如何检查“自动date和时间”是否启用?

我需要检查android设备中的“自动date和时间”是否启用。 如果没有启用,我需要显示未启用的popup窗口。

有没有可能实现。 如果可能,如何检查启用或不?

Solutions Collecting From Web of "如何检查“自动date和时间”是否启用?"

链接API 17及以上

android.provider.Settings.Global.getInt(getContentResolver(), android.provider.Settings.Global.AUTO_TIME, 0); 

链接API 16及以下

 android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.AUTO_TIME, 0); 
 public static boolean isTimeAutomatic(Context c) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { return Settings.Global.getInt(c.getContentResolver(), Settings.Global.AUTO_TIME, 0) == 1; } else { return android.provider.Settings.System.getInt(c.getContentResolver(), android.provider.Settings.System.AUTO_TIME, 0) == 1; } } 
 if(Settings.Global.getInt(getContentResolver(), Global.AUTO_TIME) == 1) { // Enabled } else { // Disabed } 

我只想指出,这是可能的作弊(我刚做了三星Galaxy S4,Android 5.0.1):

  • 禁用自动时间
  • 断开互联网(飞机模式,没有WiFi等…)
  • 重新启动手机(否则实时检索)
  • 设置自动启动时间

今天完成:

Unix时间:1129294173

date: 14102005 024933

是自动的? 1 (使用android.provider.Settings.Global.getInt(getActivity()。getContentResolver(),android.provider.Settings.Global.AUTO_TIME,0))

而今天肯定不是2005年10月14日

这主要是为了使用户不能摆弄手机的date/时间,并且对于像Candy Crush或其他许可应用程序这样的应用程序是必要的,如果经过了特定的时间段,应用程序应该停止工作(即使在离线模式下)