android 如何修改默认时间?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 如何修改默认时间?相关的知识,希望对你有一定的参考价值。

如何将系统初始时间是1970.01.01,如何使初始时间2010.01.01?

android平台,经常会遇到产品需要更改系统默认时区日期时间的问题。android更改时区相对比较容易实现,网上也有很多资料,直接设置一个属性即可,例如设置上海东八区,persist.sys.timezone=Asia/Shanghai。但是如何实现更改默认系统时间呢?
在android中,Linux内核中、rtc时钟,默认的起始日期都是1970年1月1日,那么如何把默认日期指到2012-01-01呢?笔者在实践中发现,在RTC驱动中可以很容易实现。在RTC驱动加载的时候,一般都有个probe函数需要先执行,因此在probe函数里下手最直接有效。RTC从1970-01-01开始,那当然很容易把默认值设置到2012-01-01,所需要设置的seconds也就是从1970-01-01所差的秒数,以秒为单位。因此,一旦读出来的RTC值小于我们预想的值比如2012-01-01(1325402913)小,我们就把它设置到这个时间点。
1
2
3
4
5
6
7
8
seconds = rtc_read_time();
printk("init PMU/RTC time to %ld \n", seconds);

if(seconds <= 1325402913)
seconds = 1325402913;/*2012-01-01*/
ret = rtc_set_time(seconds);
RTC_DBG("Init Set time: %ld, ret =0x%x\n", seconds, ret);

笔者通过结果显示,在android平台上是可行的。要设置到哪天几点几分,只要算好具体1970-01-01 00:00差的秒数即可,简单明了。这样客户、用户使用起来更方便一些。
来源:http://blog.csdn.net/sundesheng125/article/details/7355126追问

不知道要修改那个文件,能给个应用层的?

追答

本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。

第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:

1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。

第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:

1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是"build\target\product\security",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build\tools\signapk"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。

这样最后得到的apk和第一个方法是一样的。

参考技术A

分两个步骤:

    修改文件alpsframeworksbasepackagesSettingsProviderresvaluesdefaults.xml
    增加代码24
    红色标记表示24小时制,也可以改为12(12小时制)

    修改文件alpsframeworksbasepackagesSettingsProvidersrccomandroidproviderssettingsDatabaseHelper.java
    找到函数loadSystemSettings (),在函数中增加以下语句:
    loadStringSetting(stmt, Settings.System.TIME_12_24, R.string.time_12_24);

参考技术B 楼主用自己的方法解决了,不知能否分享下呢???

Android 11.0 修改默认休眠时间

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

diff --git a/base/packages/SettingsProvider/res/values/defaults.xml b/base/packages/SettingsProvider/res/values/defaults.xml
index 761d8bcbe..12c144318 100644
--- a/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/base/packages/SettingsProvider/res/values/defaults.xml
@@ -18,7 +18,7 @@
 -->
 <resources>
     <bool name="def_dim_screen">true</bool>
-    <integer name="def_screen_off_timeout">60000</integer>
+    <integer name="def_screen_off_timeout">120000</integer>
     <integer name="def_sleep_timeout">-1</integer>
     <bool name="def_airplane_mode_on">false</bool>
     <bool name="def_theater_mode_on">false</bool>
     

以上是关于android 如何修改默认时间?的主要内容,如果未能解决你的问题,请参考以下文章

android编译的时候 是如何配置默认显示横竖屏

android开发中如何修改layout文件默认布局格式?

如何修改Android系统默认输入法

如何改变Android Progressbar默认颜色

android2.2的锁屏界面,如何在开机时默认显示横屏

如何改变Android Progressbar默认颜色