Intereting Posts
Android Studio – удалить модуль – IncorrectOperationException: не следует изменять внешнюю команду документа или отменять прозрачность В чем разница между sendStickyBroadcast и sendBroadcast в Android? Получение DrawerLayout для перемещения по ActionBar Я хочу добавить цветной фильтр в изображение Компиляция и тестирование ядра Android с помощью Android Emulator Android Lollipop по умолчанию использует данные Mobile Data, когда Wi-Fi не имеет доступа в Интернет? Создайте progressDialog только со спиннером (посередине) Каков правильный способ получить раздув макета в Android? Сохранение списка в списке фрагментов при изменении ориентации Java.lang.NullPointerException: попытка вызвать виртуальный метод по ссылке нулевого объекта Является ли FCM (firebase cloud messaging) токеном для одного устройства или для одной учетной записи? Что делает transitive = true в Gradle именно так (wrt crashlytics)? Загрузка html-файла в веб-обозреватель в Android-папке с помощью Android Studio Передача jsonarray из одной активности в другую Менеджер загрузки Android завершен

Как установить время на устройство программно

Я создал одно приложение, которое заменяет текущее время показа времени сервера. Я много пробовал, но я не нашел решения. Как я могу установить его на свое устройство?

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

  • Серверное время автоматически устанавливается на мое устройство в событии нажатия кнопки.

Solutions Collecting From Web of "Как установить время на устройство программно"

Если у вас есть правильное разрешение (см. Ниже), вы можете сделать это с помощью AlarmManager . Например, чтобы установить время до 2013/08/15 12:34:56, вы можете сделать:

 Calendar c = Calendar.getInstance(); c.set(2013, 8, 15, 12, 34, 56); AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); am.setTime(c.getTimeInMillis()); 

Для этого вам нужно разрешение SET_TIME . К сожалению, это разрешение signatureOrSystem .

Определение в AndroidManifest.xml:

  <!-- Allows applications to set the system time --> <permission android:name="android.permission.SET_TIME" android:protectionLevel="signature|system" android:label="@string/permlab_setTime" android:description="@string/permdesc_setTime" /> 

Единственными приложениями, которые могут использовать это разрешение, являются:

  • Подпись с изображением системы
  • Установлен в папку /system/

Если вы не создадите пользовательские ПЗУ, вам не повезет с первым.

Во-вторых, это зависит от того, что вы делаете.

  • Если вы создаете приложение для широкого распространения ( Google Play и т. Д.), Вы, вероятно, не должны. Это только вариант для пользователей root, и вы сможете установить его только вручную. Любая торговая площадка не будет устанавливать ее в нужное место.

  • Если вы создаете приложение для себя (или просто как учебное упражнение), идите на это. Однако вам понадобится корневой телефон, так что сделайте это первым. Затем вы можете установить приложение прямо в /system/app/ с помощью ADB или файлового менеджера. См. Статьи, подобные этому, для более подробной информации.


AlarmManager#setTime() в Android 2.2 ( API 8 ) были добавлены разрешения SET_TIME и AlarmManager#setTime() ). Если вы пытаетесь сделать это в предыдущей версии, я не уверен, что она будет работать вообще.

Попробуй это:

Вы можете использовать следующую команду:

 adb shell date -s YYYYMMDD.HHmmss 

пример:

 adb shell date -s 20120423.130000 

Устанавливает дату в понедельник 23 апреля 13:00:00 IST 2013

Или вы можете попробовать это:

 startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS)); 

Надеюсь, поможет!!

Короткий ответ:

Вы не сможете этого сделать, если планируете открыть приложение в магазине приложений или обновить время до сервера.

Для изменения даты времени в соответствии с сервером требуется разрешение SignatureOrSystem .

Возможно, вам придется укоренить свое устройство, а затем реализовать изменение.

Этот поток должен помочь вам, чтобы лучше понять его.

Я сделал то же самое в течение двух недель, теперь я получил решение с укорененным устройством

  1. Получить время сервера
 <?php echo date("Ymd.His "); ?>