前几天写好了一个小Demo,但是一直是在模拟器上运行,从来没有装到手机上测试下。那天晚上突然想把Demo装到手机上真机测试一下,于是就把Eclipse工程目录下的.jad和.cod文件直接拷到内存卡。但是当我在手机上打开.jad文件时,手机屏幕突然弹出了窗口,意思是这个程序使用了一些敏感的API,必须要签名之后才能在手机上运行。
关于敏感函数,看过了一些资料,说是为了保护手机安全,要记录软件使用的敏感函数,当软件具有破环性质或者泄露用户的私人信息时,RIM会封掉这个账号。
当时兴趣一扫而光,感觉自己可能做不下去了,要不然自己去买签名,要不然就得找别人代签,这两件事都不是简单的事情。朋友给我说找找网上有没有什么办法可以解决的。可惜国内做黑莓开发的人群真的不多,解决办法的就别提了。国外人家要买的话相当方便,所以也懒得去做这些。20美元不算多,但是想花也没有办法花出去,美国又没有亲戚或朋友。
买签名的话,必须使用可以支付国际货币的信用卡,这个倒是不难,自己办一个就行,但是买的时候还不能写中国的地址,这是什么意思?!不买。
找人代签更是一件痛苦的事,在一个论坛上面看到有一个人寻找代签呢?但是没人回复,也不知道找到没有。
。。。
。。。
继续在网上瞎转悠。看到了签名的安装介绍,说是在Build->Request signatures里面。我打开之后发现有很多NOT Required,意思就是说这些cod不需要签名。不知道我的程序里面又有哪些API需要签名呢?
于是我在BlackBerry JDE中建了一个工程,然后从Eclipse中把源文件拷到工程中,然后把源文件添加到工程中,直接Build(真好,不用设置任何东西,可惜不好用,唉~)。在Output中把信息拷出来,一句句地看,终于发现了有一处需要签名就是获取屏幕宽度Display.getWidth()。当时一想,手机屏幕宽度自己知道的,不如直接将宽度数值作为返回值。
这样想过之后,重新build一下,没有发现需要签名。
然后在Eclipse中改过来之后,build的时候心跳已经在慢慢加速了。
将jad和cod文件拷到手机上,安装之后。。。
运行。。。
界面出来之后,哈哈,不小心喊了出来。现在都不敢想当时会那么激动。
后来又在net_rim_api.jar中看到有j2me的API,这个RIM应该限制会少点吧。所以,不想签名的话,就首先可以试着用其他方式实现相同的功能;其次,可以使用j2me的API。
这是合理的吧。^_^
转自:http://blog.csdn.net/wilesilly/archive/2009/07/12/4341959.aspx