Android(安卓)网络时间更新
Android2.3中,网络时间更新是通过GSM和CDMA的电信移动网络来实现的,但是现在很多MID都没有GSM和CDMA,所以,没有实现网络更新。
在 “设置” ——> “日期和时间” ——> “自动” 选项实习网络时间更新
由于项目需要,我用了点时间去实现了通过wifi实习网络时间更新,如下
直接修改android源码中的Settings源码
1、附件中SNTP.java文件是一个wifi时间更新Service ,该Service如果没有成功获取网络时间则会每隔一段时间去程序获取网络时间,直到成功获取网络时间为止。
2、修改Settings\src\com\android\settings\DeviceInfoSettings.java,在onSharedPreferenceChanged函数中
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
if (key.equals(KEY_DATE_FORMAT)) {
String format = preferences.getString(key,
getResources().getString(R.string.default_date_format));
Settings.System.putString(getContentResolver(),
Settings.System.DATE_FORMAT, format);
updateTimeAndDateDisplay();
} else if (key.equals(KEY_AUTO_TIME)) {
boolean autoEnabled = preferences.getBoolean(key, true);
/* add at 2011.6.21 */
if( autoEnabled ){
Log.d("---------->"," startService !! " );
Intent intent = new Intent(DateTimeSettings.this,SNTP.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startService(intent);
}else{
Log.d("---------->"," endService !! " );
Intent intent = new Intent(DateTimeSettings.this,SNTP.class);
stopService(intent) ;
}
Settings.System.putInt(getContentResolver(),
Settings.System.AUTO_TIME,
autoEnabled ? 1 : 0);
mTimePref.setEnabled(!autoEnabled);
mDatePref.setEnabled(!autoEnabled);
mTimeZone.setEnabled(!autoEnabled);
}
}
3、在packages\apps\Settings\AndroidManifest.xml中注册service
<service android:name=".sntp.SNTP"
android:exported="true"
android:process=":remote">
</service>
中国大概能用的NTP服务器地址 133.100.11.8 prefer
210.72.145.44
203.117.180.36
131.107.1.10
time.asia.apple.com
64.236.96.53
130.149.17.21
66.92.68.246
www.freebsd.org
18.145.0.30
clock.via.net
137.92.140.80
133.100.9.2
128.118.46.3
ntp.nasa.gov
129.7.1.66ntp-sop.inria.frserver 210.72.145.44(中国国家授时中心服务器IP地址)
文章出自:http://blog.csdn.net/lhf_tiger/article/details/6939847
更多相关文章
- 在新建android工程的时候出现This template depends on the Andr
- 一篇文章搞懂Handler发消息时,Handler,MessageQueue,Looper都做了些
- Android(安卓)CPU监控想法,思路,核心技术和代码
- Android(安卓)2.0新增类ExifInterface使用
- Android待机状态更新
- android获取网络图片的用法
- android抓取网络通讯包
- Android(安卓)MTK去除移动网络
- blockCanary原理