У меня есть встроенное устройство для Android, и я хочу изменить время, дату и часовой пояс моего устройства в своем приложении. Изменение времени и даты довольно просто, но как я могу изменить часовой пояс моего устройства?Как установить часовую зону для укороченного устройства Android?
ответ
Если у вас есть правильное разрешение (см ниже), вы можете сделать это с 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" />
Единственные приложения, которые могут использовать это разрешение являются:
- Подписано образ системы
- установлен в/системы/папки
Если вы не создаете пользовательские ПЗУ, вам не повезло с первым.
Во-вторых, это зависит от того, что вы делаете.
- Если вы создаете приложение для широкого распространения (Play Store и т. Д.), Вы, возможно, не должны. Это только вариант для пользователей root, и можно установить только вручную. Любая торговая площадка не будет устанавливать его на правильное местоположение .
- Если вы создаете приложение для себя (или как упражнение ), идите за ним. Однако вам понадобится проложенный телефон, так что сначала сделайте это . Затем вы можете установить приложение прямо в/system/app/ с помощью adb или файлового менеджера. См. Статьи, подобные этому, для более подробной информации.
Последнее примечание: разрешение SET_TIME и AlarmManager # setTime() были добавлены в Android 2.2 (API 8). Если вы пытаетесь сделать это в предыдущей версии, я не уверен, что она будет работать вообще.
Необходимо android.permission.SET_TIME
. После этого используйте AlarmManager через Context.getSystemService (Context.ALARM_SERVICE) и его метод setTime()
.
Сниппает для установки времени в 2010/1/1 12:00:00 от деятельности или предоставления услуг:
Calendar c = Calendar.getInstance();
c.set(2010, 1, 1, 12, 00, 00);
AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
am.setTime(c.getTimeInMillis());
Если для изменения часового пояса, подход должен быть очень похож (см андроида .permission.SET_TIME_ZONE и setTimeZone)
более- 1. Установить часовую зону в приложении для Android
- 2. Как установить часовую зону на поток?
- 3. Как изменить часовую зону
- 4. Как установить часовую зону в codeigniter?
- 5. Как установить часовую зону в сеансе SQLite?
- 6. Как поддерживать часовую зону
- 7. PHP> Установить часовую зону по умолчанию
- 8. Как установить часовую зону базы данных для экземпляра AWS RDS
- 9. Как установить часовую зону как плавающий в Zing Chart?
- 10. Как получить часовую зону гостевого пользователя
- 11. Как установить часовую зону по умолчанию в хранимой процедуре MySql
- 12. Как установить часовую зону в конфигурационных файлах codeigniter?
- 13. Как установить часовую зону IST на сервере MySQL?
- 14. Как получить часовую зону с камнем геокода?
- 15. Как получить часовую зону клиента в PHP
- 16. Как добавить часовую зону к запросам Esper?
- 17. Конфликт PHP при попытке установить часовую зону более одного раза
- 18. Установить часовую зону cookie ПЕРЕД первой загрузкой страницы
- 19. Получить часовую зону на основе Выбранное место
- 20. перенастроить часовую зону внутри докеры не работает
- 21. Получить часовую зону времени date-timezone
- 22. Как получить часовую зону пользовательского пользователя для веб-приложения?
- 23. Получить часовую зону пользователя в Python + Pylons
- 24. Получить часовую зону сервера В PHP
- 25. Найти часовую зону клиента на стороне сервера
- 26. Получить часовую зону/страну с iPhone
- 27. Как указать часовую зону в linux с помощью C
- 28. Выбор даты для углового, который игнорирует местную часовую зону
- 29. Как разобрать часовую зону с параметром datetime до datetime
- 30. Как получить часовую зону пользователя с помощью API freegeoip.net?
Я не пробовал это, но разве это просто не задает часовой пояс для этого единственного объекта SimpleDateFormat, а не всего устройства ...? –
Да, вы правы, см. Мой раздел –