Intereting Posts
Oauth 2.0: идентификатор клиента и секрет клиента раскрыты, это проблема безопасности? Можно ли получать SMS с Android-эмулятора? Отладка кода Android NDK C / C ++ в Eclipse – точки останова не попадают Интегрируя org.apache.poi и пакет javax.xml.stream. * (Stax-api) в android – как установить аргумент -core-library в Android Studio? Как получить номер телефона телефона в коде Android? Почему у меня есть «Настройка airplane_mode_on переместилась с android.provider.Settings.System » в logcat, когда мое приложение не имеет к этому никакого отношения? Является ли контент-провайдер реализацией шаблона репозитория? Запуск приложения дает 2 значка приложения в Android Studio – новичок Реализовать AsyncTask в Fragment android Когда вызывается onBindViewHolder и как он работает? Не могу найти причину моего сбоя с этой трассировкой стека Темы Android ListView Почему Android не использует больше перечислений? Изменение цвета экрана Android 5.0 Android Support Package / Compatibility Library – используйте v4 или v13?

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

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

Я знаю, как получить время сервера на моем устройстве 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 "); ?>