如何检查是否启用"Automatic date and time"?



我需要检查android设备中是否启用了"自动日期和时间"。如果它没有启用,我需要显示它没有启用的弹出窗口。

有可能实现吗。如果可能,如何检查是否启用?

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;
    }
}

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

  • 禁用自动时间
  • 断开与互联网的连接(飞机模式,无wifi等)
  • 重新启动手机(否则会检索到实时信息)
  • 设置自动时间

今天完成:

Unix时间:1129294173

日期:14102005024933

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

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

if(Settings.Global.getInt(getContentResolver(), Global.AUTO_TIME) == 1)
{
    // Enabled
}
else
{
    // Disabed
}

检查是否启用了"自动时间"或"区域"?(Kotlin

fun isAutoTimeEnabled(activity: Activity) =
    Settings.Global.getInt(activity.contentResolver, Settings.Global.AUTO_TIME) == 1
fun isAutoTimeZoneEnabled(activity: Activity) =
    Settings.Global.getInt(activity.contentResolver, Settings.Global.AUTO_TIME_ZONE) == 1

在kotlin中,您可以使用

fun isTimeAutomatic(c: Context): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
    Settings.Global.getInt(c.contentResolver, Settings.Global.AUTO_TIME, 0) == 1
} else {
    Settings.System.getInt(c.contentResolver, Settings.System.AUTO_TIME, 0) == 1
}}

相关内容

  • 没有找到相关文章

最新更新