2020-03-02 遇到的一点小问题
需要获取Android设备上的时区ID列表,网上找了下,只有获取当前手机使用的时区。
//import java.util.TimeZone;
TimeZone zone = TimeZone.getDefault();
String id = zone.getID(); //Asia/Shanghai
在AndroidStudio里面翻了翻sdk,也没看到。因为在手机的系统设置里能展示时区列表,刚好网盘里有份好几年前存储的系统设置的源码,就去看了下。是2.2版本的,在Settings文件夹里面,是单独的文件timezones.xml。不过只有83个,和ArchLinux使用指令timedatectl list-timezones
获取到的426个时区ID列表比起来差太多了。
担心是版本问题,所以想着找找其他版本的源码看看。网上搜索看有没现成的timezones文件,结果只在csdn下载区看到。好坑啊,源码复制过来的东西还收下载积分,而且连个版本都没写。之前上过几次当,算了。上官网下载来看看。
看了下Android源码下载教程,放弃了,实在太麻烦了,而且文件太大了,要等挺长时间的。
网上再搜索了下,看到Android源码在线查看网站:AndroidXRef.com 。
因为这个网站搜索需要指定目录,所以网上找了个源码目录说明 参考。试了下,找到需要的文件了。因为只是和Arch Linux里面的比较,并不需要在Android的app里使用,所以这样就可以了。
随便看了下后面的几个版本,6.0.1、7.1.2、8.1.0,发现都是在strings.xml文件里,不过也都是只有83个。其他语言版本也在对应目录的strings.xml文件里面。比如简体中文在values-zh-rCN文件夹里面。
顺便说一下,公司买的华为荣耀测试机,竟然没法修改时间、时区。。。太坑了。
开发测试过程,用过好几个华为手机,每个都有槽点,没一个满意的。