赞
踩
解决方案
1、关闭系统自动刷新,调用SntpClient类结构,自行实现刷新时间apk
2、修改setting数据库中ntp server的值,重启设备
frameworks\base\core\java\android\util\NtpTrustedTime.java
public static synchronized NtpTrustedTime getInstance(Context context) { if (sSingleton == null) { final Resources res = context.getResources(); final ContentResolver resolver = context.getContentResolver(); final String defaultServer = res.getString( com.android.internal.R.string.config_ntpServer); final long defaultTimeout = res.getInteger( com.android.internal.R.integer.config_ntpTimeout); // 修改此处获取的ntp server值,重启后会从数据库那最新的值 final String secureServer = Settings.Global.getString( resolver, Settings.Global.NTP_SERVER); final long timeout = Settings.Global.getLong( resolver, Settings.Global.NTP_TIMEOUT, defaultTimeout); final String server = secureServer != null ? secureServer : defaultServer; sSingleton = new NtpTrustedTime(server, timeout); sContext = context; } return sSingleton; }
修改接口使用
frameworks\base\core\java\android\provider\Settings.java
/**
* Store a name/value pair into the database.
* @param resolver to access the database with
* @param name to store
* @param value to associate with the name
* @return true if the value was set, false on database errors
*/
public static boolean putString(ContentResolver resolver,
String name, String value) {
return putStringForUser(resolver, name, value, UserHandle.myUserId());
}
注意: 如果直接调用该结构,apk需要system权限;绕过的解决方案,系统服务中增加接口实现该函数的调用,然后给上层apk拉一个调用服务的接口,适用于系统深度定制开发
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。