打印

联通WAP铃音下载

我的系统是JAVA的,一开始用JSP+SERVLET来写,结果部分手机不支持SESSION,没办法,全部整成JSP的了。

因为铃音格式及WAP版本的问题,对所有手机进行适配,为此建了一张 wap_ua 表,包括了acceptAudioType,profile,wapEdition,userAgent几个字段,稍微解释一下:
acceptAudioType   mid40#mmf40或mid40,前者表示手机支持两种格式的铃音文件
profile        现在空着,此前用了一款WAP2.0的手机,请求头里有这个东西,就先放着了
wapEdition      1.2或2.0
userAgent      请求头里的user-agent参数,不过联通发来的这个user-agent经常会变化,具体原因不清楚。

有这个表,对访问的手机进行适配就不难了,无外乎取出手机的user-agent,再与表中的数据对比,得到一个UserAgent对象,里面包含了 acceptAudioType及wapEdition,同一个音乐记录有很多种格式的铃音文件,显示在页面上的就是acceptAudioType里有的,因此,不同的手机上来,给他显示的铃音文件也是不同的,按理说应该就这样搞定了。

后来发生的一个问题是,同一个铃音文件,放在目录A下面,手机正常下载,放目录B下面,就下载不了了,说是类型信息不匹配。反正很让人郁闷。
还有一个,我的铃音文件全部是公司里一个做音乐的同事给的,先把他给的这些文件及文件格式认为是完全正确的,就又有一个奇怪的问题,歌曲A的MIDI40 文件可以被MOTOV860成功下载,但歌曲B的MIDI40文件,MOTOV860却无法成功下载,我又不知道是为什么了。


从斑竹的回复来看,好像做过联通的WAP,可以给指点一下吗?



什么时候这个系统被联通测试通过了,把源代码全部公开出来,在做这个系统的过程中,遇到了很多很多的问题,遇到一个就上网找一通。公司里没有别人做过WAP铃音下载的东东,也没有指导人。真的好累,要搞定了,把代码公开应该会对一些朋友有所帮助的吧,唉,都不容易。。
1、判断ua可以用模糊判断进行匹配。
2、下载铃声注意铃声的大小。
3、提到目录a和目录b的问题注意,文件的路径,和下载链接上该mid文件的大小。
4、实在不能下载的mid就重新制作一次,重新上传一次。
wap确实有时候的问题莫名其妙。
上面列的一个问题已解决,这个信息类型不匹配的问题缘于我没在目录B下的 web.xml 里面配置 mime-mapping 项,而目录A下的web.xml里我配了,粗心要不得。
那第二个问题自己还没遇着,MOTOV860在测试时动不动就提示“连接”失败,然后没法继续,真让人郁闷。

联通测试那边有九款机型,在适配这一关已经通过了七款手机,还剩两款没通过,问题比较奇怪,说发生的错误是HTTP_STATUS为500的服务器内部错误,但我服务器端却没看到任何的错误消息,还得再花时间了。

谢谢斑竹的回复
手机和手机不同,对wml要求比较严格,甚至有的是BT
比如<a title='' href=''>下载</a> 如果写成<a href='' title=''>下载就不能用</a>

排除法,调试,先弄个最小的mid进行下载。如果还不行
就精简代码,留下最基本的。把加粗啊等装饰性代码去掉。

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
斑竹好,下面这句是我在那个置顶帖里看到的。

14、注意mmf对应的MIME有3个,至于用那个,可以通过抓包获得手机的“Accecpt”来验证。


关于这一点我有些疑惑,因为这边我的感觉是一款手机对应于一类格式的,所以只要手机被确定下来了,那我应该是可以通过预先在库中存好的该手机适配的铃音格式来向用户展现的。这便让我的程序里没有对手机的accept来进行什么样的判断。
不知道你当时是不是用的asp来作的,我用的JSP写,所有的mime-mapping都写在web.xml里面,这样反正很多手机都是可以的。

我现在的问题出在两款手机上,MOTOV860和东芝T618X,按网上找的资料,都是说支持文件小于20K的MMF40格式的铃音。我自己用MOTOV860测试时,都是在下载完了后说“格式不支持”,不是信息类型不支持。然后我试着去下载MIDI4格式的铃音,还是提示相同的错误。

斑竹,依经验来看,你觉得这问题会是出在什么地方呢?


我的web.xml里给MMF映射了这三个类型:application/x-skt-lbs,application/vnd.smaf,application/x-skt-lbs,应该是可以的了吧。

楼上的这个 title 和 href 位置互换也试过了,也是不行。。

[ 本帖最后由 liltos 于 2007-7-13 10:13 编辑 ]

TOP

另外,问题可能会发生在手机上吗?

TOP

先把这里当作一个记事本了,等项目结束后写个总结的文章,就从这拿资料好了。

wap_ua 表里的字段照现在看来应该是少了一项,关于文件大小的。应该加上 acceptFileMaxSize 的一列。形式与 acceptAudioType 一样,若一款手机支持多种格式,则 acceptFileMaxSize 应该有如此内容:10000#20000,分别表示前一种格式支持10000字节大小的文件,当然,可能这个“#”号是多余的。

似乎还应该建一张关于格式的优先级表,即,每个记录只对用户展现一种格式,如一款手机同时支持MMF与MP3格式时,应该优先展现MP3格式的文件。而当MP3格式的文件大于用户手机允许时,又应该只展现MMF格式的给用户。

[ 本帖最后由 liltos 于 2007-7-13 10:21 编辑 ]

TOP

在JSP应用里的 web.xml 里面,要配置一大堆的 mime-mapping,一开始我认为是多多益善的,就把原来文件大小为4K的web.xml增加到了48K,很多很多的 mime-mapping,结果发现这样反而搞得我手机下载时出现了“格式不支持”、“信息类型不匹配”等错误,再把它精简掉就重新好了。

又遇到一个不大明白的问题是关于订制、退订接口的,程序我已经按照文档接口的要求写好了,无非就是解释一个xml文件,是不难的。不明白的是,这个程序应该是要告诉运营商网关的,要不运营商的网关就应该不知道这边写的程序是怎么命名的,在哪个目录下。但是查看了很多文档都没有找到这一个。
我想这种事情绝对是一次经验抵过十本书的,希望斑竹能再给一下指点。

TOP

要不运营商的网关就应该不知道这边写的程序是怎么命名的,在哪个目录下。

这个问题在你申报业务时候,让你填写订购关系的地址,等于你告诉运营商,用那个地址进行订购处理。

TOP

联通的那个鸟人啊,明明是自己不清楚这个订制关系是干什么用的,却问我你要这接口干嘛,还让我先把其它业务做好再问这个问题,本来想写完项目就过来整个完全总结来着的,现在不知道要等到啥时候了。

TOP

这个太高级了,没用过

TOP