Pessoal, consegui os arquivos da classe SntpCliente, e estou com problemas para implementar a mesma no meu código.
A ideia é eu pegar a hora no inicio da minha aplicação, veja o trecho que faço isso e da erro no Public void main...
@Override
protected void onCreate(Bundle savedInstanceState) {
//Remove barra de titulo
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_principal);
//Recupera data de acesso - Atenção- Datas em Java vão de 0 a 11, nesse caso fez-se necessário
//adicionar +1 no momento do save no banco
Calendar calendar = Calendar.getInstance();
ano = calendar.get(Calendar.YEAR);
mes = calendar.get(Calendar.MONTH);
dia = calendar.get(Calendar.DAY_OF_MONTH);
//Recupera variaveis
idMatricula = (EditText)findViewById(R.id.idMatricula);
btnEntrar = (Button)findViewById(R.id.btnEntrar);
txtHoraGlobal = (TextView) findViewById(R.id.txtHoraGlobal);
helper = new BDCore(this);
//O ERRO OCORRE AQUI NESSE main, ele diz "void is an invalid type for the variable main"
public void main(String[] args) throws IOException {
final String serverName = args.length>0?args[0]:"us.pool.ntp.org";
final DatagramSocket socket = new DatagramSocket();
final InetAddress address = InetAddress.getByName(serverName);
final byte[] buffer = new NtpMessage().toByteArray();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, PORT);
socket.send(packet);
packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
// Immediately record the incoming timestamp
final double destinationTimestamp = NtpMessage.now ();
final NtpMessage msg = new NtpMessage(packet.getData());
socket.close();
/* Presumably, msg.orginateTimestamp unchanged by server. */
// Formula for delay according to the RFC2030 errata
final double roundTripDelay =
(destinationTimestamp - msg.originateTimestamp) -
(msg.transmitTimestamp - msg.receiveTimestamp);
// The amount the server is ahead of the client
final double localClockOffset =
((msg.receiveTimestamp - msg.originateTimestamp) +
(msg.transmitTimestamp - destinationTimestamp)) / 2;
// Display response
System.out.format ("NTP server: %s%n", address);
System.out.printf ("Round-trip delay: %+9.2f ms%n", 1000*roundTripDelay);
System.out.printf ("Local clock offset: %+9.2f ms%n", 1000*localClockOffset);
final long now = System.currentTimeMillis(); // milliseconds 1x10e-3 seconds
final long cor = now + Math.round (1000.0*localClockOffset);
System.out.printf ("Local time: %1$ta, %1$td %1$tb %1$tY, %1$tI:%1$tm:%1$tS.%1$tL %1$tp %1$tZ%n", now);
System.out.printf ("Corrected time: %1$ta, %1$td %1$tb %1$tY, %1$tI:%1$tm:%1$tS.%1$tL %1$tp %1$tZ%n", cor);
txtHoraGlobal.setText(now);
}
}
Em quinta-feira, 24 de dezembro de 2015 00:59:05 UTC-2, Renato Souza escreveu:
Alguém recomenda uma api para data e hora somente.
Abs