Android 网络时间更新-科卓培训android系列
来源:互联网 发布:python高级编程 pdf 编辑:程序博客网 时间:2024/06/01 09:19
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>
在 “设置” ——> “日期和时间” ——> “自动” 选项实习网络时间更新
由于项目需要,我用了点时间去实现了通过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地址)
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地址)
- Android 网络时间更新-科卓培训android系列
- Android 时间更新机制之网络更新时间
- android wifi网络时间更新-android2.3
- android源码分析之网络更新时间
- Android -- 系统网络时间更新NetworkTimeUpdateService服务解析
- Android 网络时间
- Android 获取网络时间
- android 获取网络时间
- Android网络时间同步
- Android 同步网络时间
- 黑马程序员Java培训和Android培训_网络编程
- Android 时间同步与更新
- Android 时间 更新与同步
- Android 系统时间更新机制
- android系统时间循环更新
- Android 时间更新机制研究
- Android系统时间更新机制
- 网络字节序与主机字节序-科卓培训移动网络开发系列
- WCF Notes4(Host)
- 在Debian里建立交叉编译环境(cross-compiler)
- Some RAC Concepts
- 一串事物中每个事物的前后位置与顺序编号的转换问题
- mysql 添加列,修改列,删除列。
- Android 网络时间更新-科卓培训android系列
- openwrt目录结构
- [学习记号 - 其他] 针对 Silverlight 应用程序使用的 GB2312编码
- WCF Note5(Binding)
- UITableView实现下拉刷新添加数据功能
- 嵌入式系统Boot Loader技术内幕
- Spring 2.5.1 MVC + Tiles 2.0.5 基本配置
- 单例模式浅理解
- S3C2440 SDRAM内存驱动