2015-11-05 2 views
0

Я разрабатываю мобильное приложение, в котором пользователь может запрашивать товары и услуги. Вот, я пытаюсь получить точную дату & времени запросов, когда пользователь выполняет submit.I хочу знать, что лучший способ получить дату и время из мобильного среди следующих:Лучший способ получить точную дату и время на мобильных устройствах

  1. GPS
  2. СЕТЬ ПРОВАЙДЕР
  3. УСТРОЙСТВО вРЕМЯ и ДАТА.

Существует некоторый сценарий, которого необходимо избегать. -> Что делать, если пользователь установил другую дату и время вместо правильного. -> Что делать, если сеть недоступна.

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

+1

Если вы хотите точное время, не полагайтесь на клиента. Получите время от сервера. Вы никогда не сможете полагаться на доступность GPS или сети. – adelphus

+0

Мне нужно отправить время и дату в качестве параметра request.now, если я получаю дату и время в качестве ответа от сервера, я не могу изменить всю логику, которую я уже написал. –

ответ

1

сети поставщика в случае сети доступных после тогдашним устройства

0

Первый чек на сети провайдера и при наличии хорошо еще пойти на время и дату устройства, которое устанавливается вручную. Последним вариантом может быть GPS.

+0

Не могли бы вы объяснить, почему вы упомянули GPS наконец? –

+0

Потому что, если вашему сетевому провайдеру и устройству не удастся установить время, вы можете использовать координаты GPS, чтобы получить свое местоположение и тем самым получить время нахождения. –

0

Вы можете получить время устройства с помощью:

GregorianCalendar c = new GregorianCalendar();

И затем использовать методы GregorianCalendar, чтобы получить то, что вам нужно.

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

В этом случае вам необходимо использовать NTP-сервер. Как это сделать описано here.

0

Более локальное время с устройства более чем достаточно. это можно легко сделать с помощью этого:

long currTime= System.currentTimeMillis(); 

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

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS"); 
Calendar cal = Calendar.getInstance(); 
cal.setTimeInMillis(currTime); 
return formatter.format(cal.getTime()); 

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

+0

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

+0

Тогда вам не нужно полагаться на пользовательское устройство. Использовать время сервера – artman

Смежные вопросы