Friday, November 07, 2008

Google 手机地图 2.2.1.5 发布

最近几天在国内的 IT 媒体纷纷报道 Google 手机地图发布了最新版本。原本还在纳闷九月底的新闻怎么现在大家才反应过来,后来看到 Google 黑板报消息,Google 手机地图 2.2.1.5 发布了。和之前发布的 2.2.0 版本相比,除了已经有的“我的位置”、“行车路线”和“公交换乘”功能意外,显著的改动就是增加了“实时路况”功能,可惜目前只支持北京和上海两个城市,希望支持的城市能够逐渐多起来。

在自己的手机上试装了一下 Symbian S60 v3 版本,中文版安装时显示的系统版本号为 2.02(1),之前版本为 2.02(0);安装完毕后“关于”界面显示版本号为 2.2.1.5。测试地点和上次一样,而这次利用 GPRS 基站信号定位的地点比上次更接近于实际位置,相差大约为 20 米,可能是因为所处位置并不在道路上。上次定位于实际相差至少 100 米,不知道这次版本升级对“我的位置”定位是否也做了改进。

由于“实时路况”功能尚不支持成都,开启后显示“正在加载路况信息……”不久显示“无此处的路况信息可用”。待以后支持成都市地图后再行测试。

另外顺便也安装了一下英文版,版本号为 2.02(0),仍然和上次一样,安装后 About 页面显示版本号 2.2.0.13,但功能上也多出了“Traffic Info”选项,开启后出现的情况和中文版一致。

Labels: , , ,

Friday, October 10, 2008

MIDlet 在索爱手机上安装失败

最近在工作中,发现一部分索爱 (SonyEricsson) 手机,在安装 MIDlet 时发生“Downloading failed”错误。具体情况发生在手机通过 OTA 安装 MIDlet,Jar 文件下载完毕并开始安装后,系统询问是否允许应用程序自动启动,以及是否允许应用程序收发短信,接下来就出现“Downloading failed”。

在出现此问题时,使用的是 Orange France 的 SIM 卡,考虑到 GPRS 漫游可能会带来的问题,我们改用中国移动的 SIM 卡,则安装正常。看来和 SIM 卡有关系。但同时,在索爱手机上无法安装的 Orange France 的 SIM 卡,在其它一些索爱手机以及所有 NOKIA 手机上都能正确安装,所以并不是由 SIM 卡本身 GPRS 漫游引起的。

几个星期以来,一直被这个问题困扰,百思不得其解。今天修改一个关于 PushRegistry 的 bug,突然想起来可能和 PushRegistry 有关,又重新 Google 了一番,发现了索爱官方论坛上的这个帖子:

https://developer.sonyericsson.com/thread/17306

帖子的作者遇到和我们完全一致的问题,而最终的解决办法,由索爱的技术人员给出了答案。

这个无法安装的错误,确实和 PushRegistry 有关系。如果把 JAD 中“MIDlet-Push-*”的属性去掉,则可以正常安装。但导致出问题的最终原因,是手机短信选项设置中存在没有值得空选项,如“Service center”、“Message type”、“Validity period”。SIM 卡通常都会为这些选项自动设置,但如果某一个选项没有设置,成为空值,则会导致上述情况。

我仔细查看了我们有问题的手机,所有手机上的“Validity period”都为空。设置成“Network maximum”后,MIDlet 安装和 PushRegistry 注册就完全正常了。

另外,我们发现有问题的手机包括 K700、K500、W800、S700、K600 等,多为 JP-3、JP-5 平台的手机。

Labels: , , ,

Wednesday, September 24, 2008

Google 手机地图 2.2.0 版

Google 黑板报消息称 Google 的手机地图升级到了 2.2 版本,和之前的版本相比,多了“我的位置”、“行车路线”和“公交换乘”功能。

这些功能在以往的 Google 地图英文版是有的,只是先前的英文版本中没有国内的地图信息,于是就造成了中文版有地图不能使用 GPS 辅助,英文版有 GPS 辅助没有国内地图数据的尴尬境地。

我使用的是 Symbian S60 v3 的版本。这次升级时,手机上中英文版本显示的版本号都是 2.02(0)。简单的试用了一下,在没有 GPS 功能的情况下,也能通过 GPRS 基站数据获得大概的当前位置,只不过精度范围 2500 米至 5000 米,似乎实用性并不大。行车路线和公交换乘倒是比较方便,只是后者的公交数据仍然相对滞后。例如搜索从“成都市游乐园”到“成都市九眼桥”,会显示出 60 路,而这条线路已经在几个月前就取消了。

比较奇怪的是,在仅安装 2.2 中文版的情况下,程序中并没有找到“GPS 辅助”的选项,而 2.2 的英文版中却有“Use GPS”的选项。匪夷所思的是,英文版安装好后,中文版的“GPS 辅助”选项又神秘的出现了。在 Nokia N95 8G(自带 GPS)和 Nokia N73(蓝牙连接外置 GPS)上测试,情况一样。

另外,在英文版中,国内的行车路线和公交换乘功能似乎不可用。所以,看来比较理想的解决办法,就是同时安装中文版和英文版,这样才能在中文版中使用所有的功能……

最后,SISX 文件的下载地址:中文版英文版

Labels: , , ,

Tuesday, September 23, 2008

MIDlet 在 NOKIA 手机上安装失败

这两天发现一个奇怪的问题,就是 MIDlet 在 NOKIA 6680 上无法安装。在 Jar 下载完成后,会显示“Unable to install. Not enough memory!”而安装之前手机刚刚执行过出厂复位操作,机身空余存储空间约 7MB,因此,安装失败不可能是装不下 MIDlet 的内容而导致的。

经过反复研究,终于发现问题出在 Jad 文件属性 MIDlet-Data-Size 上。这个属性是 MIDlet 用来告诉手机,该应用程序将需要多少 RMS 存储空间。由于 NOKIA 6680 的 RMS 容量,实测有 7128 KB,和机身的空余存储空间相等,也就是说理论上手机能装多少,MIDlet 的 RMS 就能装多少,因此应用程序的 Jad 里头,MIDlet-Data-Size 设置的值是 133072,也就是 128KB。

经过反复修改 Jad 文件里 MIDlet-Data-Size 的值,发现允许的最大值为 65536,也就是 64KB。任何超过这个值的应用程序,在安装时手机都会拒绝。

同样的问题在 NOKIA 6131 上也同样存在。如果有其它手机也有类似问题,以后会随时更新。

Labels: , , ,

Friday, September 05, 2008

测试手机的 User-Agent

由于最近工作中需要得到一些手机的 User-Agent 以及 X-Wap-Profile 两个 HTTP 头的值,于是写了个简单的 PHP 程序,检测 HTTP 头,输出到 Response,然后放到网站上,让手机用 WAP 浏览器打开查看。

开始这个程序只是简单的输出纯文本,结果是 NOKIA、Sony Ericsson 以及 Samsung 手机都能正确读出,而 Motorola 却不行(实际测试过程中用的是 Motorola RAZR V3i),仅显示白页。

后来把程序改成输出标准 WML 页面,HTTP 头的 Content-Type 设置成 application/vnd.wap.xhtml+xml,NOKIA、Sony Ericsson 以及 Samsung 仍然能够正确显示而 Motorola 还是不合作。

最后找到答案,Content-Type 要设置成“text/vnd.wap.wml”,这下 Motorola 终于老实了…… 可是结果中只有 User-Agent,没有 X-Wap-Profile。

另外,在用中国移动的 SIM 卡测试的时候,发现 HTTP 请求中并没有 User-Agent 和 X-Wap-Profile 这两个头,而有个奇怪的
VIA: HTTP/1.1 SCCD-PS-WAP-GW02 (infoX-WISG, Huawei Technologies)
开始以为是手机的问题,但看到“Huawei”字样,觉得很蹊跷,后来换成 Orange France 的 SIM 卡,则一切正常了。

看来拦截 HTTP 请求是中国运营商的“优良传统”啊!

Labels: , , , ,