首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当启动设备,如果无法连接到网络,如何设置当前的时间android的东西?

当启动设备,如果无法连接到网络,如何设置当前的时间android的东西?
EN

Stack Overflow用户
提问于 2018-08-17 01:38:29
回答 1查看 295关注 0票数 1

我在覆盆子皮上使用Android-Things。当启动设备的时候。如果连接到网络,

我尝试TimeManager API。

代码语言:javascript
复制
private void setupTimeZone(String timeZoneName) {
    TimeManager timeManager = TimeManager.getInstance();
    timeManager.setTimeFormat(TimeManager.FORMAT_24);
    timeManager.setTimeZone(timeZoneName);
}

setupTimeZone("Asia/Seoul");

如果网络连接到Raspberry pi,设置时间是没有问题的。

但我的问题只是在启动设备时,而不是连接网络时。

如果设备不连接网络。基本上时间被设置为Jan 1, 2009 09:00

若要更改默认日期,需要修改哪些文件?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-17 08:06:15

对于设置时间,可以使用TimeManager.setTime()方法:

要使用TimeManager控制设备设置,首先在AndroidManifest.xml中请求权限com.google.android.things.permission.SET_TIME,然后获取类的实例并设置适合应用程序的属性。 timeManager.setTimeFormat(TimeManager.FORMAT_24);// Set时区到东部标准时间timeManager.setTimeZone(“美国/纽约”);//设定到中午日历的时钟时间= Calendar.getInstance();calendar.set(Calendar.MILLISECOND,0);calendar.set(Calendar.SECOND,0);calendar.set(Calendar.MINUTE,0);calendar.set(Calendar.HOUR_OF_DAY,12);long timeStamp = calendar.getTimeInMillis();timeManager.setTime(timeStamp);

但是覆盆子Pi 3没有内置的实时时钟( RTC ),也不可能在没有网络连接或使用外部电池支持的RTC模块(如DS1307DS3231或许多其他模块)的情况下获得实际的当前时间(也可以查看手册)。RTC模块通常使用I2C接口,因此您应该将RTC模块连接到您的板上,最初(当您的板连接到网络并知道当前时间时)通过I2C为其设置实际时间,然后在启动时从RTC模块获取当前时间并将其设置为Android Things系统,如上面的示例所示。如何通过DS3231控制RTC通过I2C你可以找到这里。在该示例中,您可以找到用户空间驱动程序的内部部件,您可以找到那里

此外,您还可以从GPS (例如从RMC语句)和GSM (例如AT+CLTS命令)模块获得通过UART连接的当前时间。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51887326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档