加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[Android]JJYEmulator电波表对时APP时区Timezone问题

(2019-06-13 16:49:05)
标签:

it

情感

文化

娱乐

杂谈

分类: 小程序菜鸟

在内陆/干扰严重区域使用电波表,会面临收波问题,可以找到BPCJJY等授时电波模拟软件/APP实现校时。针对JJY(樱花2局),则有starstonesoft.com网站上的PCJJY_Simulator;苹果/安卓市场中的JJYEmulator;另外还有网页版(如:https://shogo82148.github.io/web-jjy/)、github网站上的开源软件等。


1在具备微机的情况下,首先推荐PCJJY_Simulator(免费软件,用于Windows Vista7810的无线电时钟JJY模拟器,https://www.starstonesoft.com/download/JJYS_v105/JJY_Simulator.zip)。在操作界面上有调整发送时间的按钮,把发送时间加一小时,手表调整时差设置为GMT+8(北京)时区则成功对时。界面如下。

[Android]JJYEmulator电波表对时APP时区Timezone问题


2还试用过JJYEmulator ver1.5.2(9) (安卓版),因为不能调整发送时间,使用有些繁琐:在手表已调整时差为北京时区的情况下,首先要把手机的时区设为GMT+9时区,这样手机时钟就会快一个小时;对时完毕后再将手机的时区恢复。界面如下(左面樱花语言,显示元素都有重叠情况)。

 [Android]JJYEmulator电波表对时APP时区Timezone问题   [Android]JJYEmulator电波表对时APP时区Timezone问题


3对于完美强迫症患者来说,还要修改手机时区,不能忍。小白恶补了几天APK反编译、JAVASMAIL代码,找齐各种工具,开始除草。

反编译后翻翻JAVA源码中有关获取时间的部分。

文件:jp\houryo\jjyemulator\MainActivity$1.class

Calendar localCalendar = Calendar.getInstance();

int i3 = localCalendar.get(13);

 

3.1 引用网络说法,“无论设置怎样的时区,calendar拿到的时间(用毫秒表示的那个long类型数字)其实都是一样的,只不过在将这个数字转换成小时、分钟的时候,会用到默认时区(当前系统)去进行转换

小白一拍脑袋:手机时区不想手动改,那直接把获得的当前时间加1小时(简单直接)。


3.1.1 语句

Calendar localCalendar = Calendar.getInstance();

localCalendar.add(10, 1);     //插入语句,+1hour


3.1.2smail代码一窍不通,用java2smail工具转成smail代码插入相关文件。

文件:jp.houryo.jjyemulator\smali\jp\houryo\jjyemulator\MainActivity$1.smail,相关代码如下:(博客系统不支持特殊符号,导致长语句截断,只好截图)


[Android]JJYEmulator电波表对时APP时区Timezone问题
.line 61上方插入以下代码,注意选择寄存器,不能干扰后面代码运行。

[Android]JJYEmulator电波表对时APP时区Timezone问题


3.1.3 编译生成APK,经测试实现发送时间加1小时,基本实现设想:在国内用没有问题。


3.2 前面说了,完美强迫症重度患者,肯定不会满意当前结果:在其他时区还有问题。


3.2.1 翻翻网络经验,修改app内默认时区为GMT+9,再转换处理时间,无视手机当前时区设置。代码如下:

TimeZone timeZone = TimeZone.getTimeZone("Asia/Tokyo");

TimeZone.setDefault(timeZone);

Calendar localCalendar = Calendar.getInstance(timeZone);


3.2.2 转成smail代码插入文件MainActivity$1.smail(.line 60下方,原来的2行删除),如下所示:

[Android]JJYEmulator电波表对时APP时区Timezone问题


3.2.3 顺便把樱花界面汉化:

修改MainActivity.smailMainActivity$1.smail文件中的语句

const-string v1, "ja"

"ja"改为"zh"

 

类似含有UTF8编码的字符串

const-string v2, "\u571f"

自行转码对照原界面修改

 

3.2.4 修改res目录下的activity_main.xml文件(有2个),调整UI中各元素相对位置、字体大小以及汉化字符串。


3.2.5 重新编译生成APK,界面如下:

  [Android]JJYEmulator电波表对时APP时区Timezone问题    [Android]JJYEmulator电波表对时APP时区Timezone问题

发送校时电波时间(GMT+9)比手机时间(GMT+8)快1小时。


折腾几天,症状缓解。想想现在的手表凌晨能正常接收到JJY电波、信号强度H,自动对时,先静静。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有