我使用此代码从互联网获取真实世界时间:
try
{
HttpClient httpClient = new DefaultHttpClient();
HttpResponse httpResponse = httpClient.execute( new HttpGet( "http://developer.yahooapis.com/TimeService/V1/getTime?appid=YahooDemo"));
StatusLine statusLine = httpResponse.getStatusLine();
if( statusLine.getStatusCode() == HttpStatus.SC_OK)
{
ByteArrayOutputStream byteTimeStamp = new ByteArrayOutputStream();
httpResponse.getEntity().writeTo( byteTimeStamp);
byteTimeStamp.close();
String sTimeStamp = byteTimeStamp.toString(); // this data contains real world time, I now can parse it...
}
else
httpResponse.getEntity().getContent().close();
}
catch( Exception e) {}
此代码完美无缺。但它使用雅虎服务并取决于它们的可用性。
我使用GPS定位服务的第二种方式,但这种方式工作需要添加权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
这不是个好主意。
我需要另一种方式来获取现实世界时间。请任何想法。
如果可能的话,我还需要用毫秒来获得世界时间。
答案 0 :(得分:0)
一种可能性是使用Apache软件,例如DAYTIME协议DaytimeUDPClient。然后,您可以通过SimpleDateFormat
的帮助解释输出。另一个更精确的解决方案是基于SNTP。