手机是安卓系统,时间调节栏是灰色的,调不了时间怎么办?

手机是安卓系统,时间调节栏是灰色的,调不了时间怎么办?,第1张

调不了时间是因为打开了自动调时间和日期,以华为荣耀8x手机为例, *** 作如下:

1、在手机桌面点击打开设置app,如下图。

2、找到系统选项,点击打开,如下图。

3、在系统中找到日期和时间选项,如下图。

4、进入后,选择自动设置选项,将右方的开关关闭,如下图。

5、这样就关闭成功,可以调整时间了。

命令行

首先我想到的是手机root,然后命令行

date -s 要设置的时间1

关于如何调用命令行,请点击:安卓程序中调用 linux 命令

如果手机没 root 怎么破呢,继续往下看吧。

获取系统权限修改

没有 root 的话,可以获取系统权限来设置,怎么设置呢,这个文章已经给出:

如何使Android应用程序获取系统权限来修改系统时间

就是系统签名了。

这里说明一点,由于在manifest文件加入android:sharedUserId=”android.uid.system”这个属性,导致 Android Studio 等工具,直接编译运行会出现此提示窗:

多次点击 ok 无效,因为设置了系统属性,所以,下次你运行别的项目,出现此情况时,可以检查下时候添加了该属性的,有的话,去掉,再编译运行就可以的。

获取了权限了,一行代码就可以设置时间:

SystemClock.setCurrentTimeMillis(millTime)

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11585563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存