как включить/выключить автоматическую настройку даты/времени

Я хотел бы иметь возможность включать и выключать автоматические настройки даты и времени из Tasker. Я не вижу способа сделать это напрямую, но я могу использовать Tasker для запуска команды оболочки. Я знаю, что могу просто использовать команду даты, чтобы изменить дату на какую-то конкретную дату, но есть ли способ отключить и включить автоматическую настройку из командной строки или Tasker?

Если ваша проблема заключается в неправильной информации о летнем времени - вы можете просто обновить базу данных часовых поясов.

Ответы (2)

Может быть полезно проверить источник Android , чтобы найти точное имя пакета для системных настроек , в частности, этот источник отвечает за дату/время, строка 226 является ключом!

Раньше вы играли с Tasker, но может ли Tasker напрямую изменять системные свойства? как прямо сделать это, я цитирую строку 228 соответствующую часть:

Settings.Global.putInt(
        getContentResolver(), 
        Settings.Global.AUTO_TIME_ZONE, 
        autoZoneEnabled ? 1 : 0);

Короче говоря, фактическое прямое имя пакета будет com.android.settings/.DateTimeSettings, если это поможет!

Используя adb shellAndroid Activity Manager, amможно запустить действие, чтобы перейти непосредственно к этому экрану, как в am start -n com.android.settings/.DateTimeSettings, поэкспериментировать и посмотреть, соответствует ли это вашим потребностям, поскольку я на самом деле не играл с ним. :)

Также есть Settings.Global.AUTO_TIMEнастройки, которые вы также можете отключить для автоматической даты и времени.
У меня эта настройка не работала на Android10/Q, но этот метод работал: stackoverflow.com/a/68055904/573377 DevicePolicyManager dpm = (DevicePolicyManager) getApplicationContext().getSystemService(Context.DEVICE_POLICY_SERVICE); ComponentName component = new ComponentName(getApplicationContext(), DeviceAdminReceiver.class); dpm.setGlobalSetting (компонент, Settings.Global.AUTO_TIME, включить? «1»: «0»);

включи:

settings put global auto_time 1

выключать:

settings put global auto_time 0

источник: исходный код Android

Пример использования ADB:$ adb shell settings put global auto_time 1