我想试着写一个发送短信的小应用,因为好多时候发短信都是给一个人发,我想免除每次的选择收件人的步骤,只有一个主界面编辑短信,按下左软件发送,右软键 退出,每次发送完短信之后自动的退出,甚至自动锁键盘,这是我的初衷,参考了python的语法和symbian的API后,写出了下面的代码:
import appuifw
import e32
import messaging
def exit_key_handler():
app_lock.signal()
def send():
messaging.sms_send('13920267633', round.get(0,round.len()))
#appuifw.note(round.get(0,round.len()))
appuifw.note(u'Success')
exit_key_handler()
app_lock = e32.Ao_lock()
round = appuifw.Text()
appuifw.app.screen='large'
appuifw.app.body = round
appuifw.app.menu = [(u'Send',send)]
appuifw.app.exit_key_handler = exit_key_handler
app_lock.wait()
整个程序很简单,只是一个python for symbian的GUI程序框架,中间填入了一些GUI的控件,比如菜单和文本框,值得一提的是这个开源的PyS60程序提供了几个写好的lib,比如上 面用到的appuifw,这个是提供GUI的,messaging,这个是短消息的,sysinfo,提供系统信息的,还有联系人,摄像机模块,这些模块 极大的方便了symbian的开发,虽然还不如C/Java支持的丰富,不过作为一个雏形,已经很不错了,说句题外话,听说已经有perl for symbian了。
在开发的时候,使用Symbian SDK自带的模拟器的Release版本在电脑上进行模拟,免得在终端上测试出现麻烦,整个模拟器的界面就是一个手机的屏幕,上面是一个典型的S60系 统,使用的symbian主题,EPOCROOT/release/wins/udeb/z/system就是这个模拟手机的C盘系统目录,里面也有 app,font,mtm,data等目录,就像真正的手机一样,我在这个“手机”里也安装了相同版本的python for symbian,这样可以方便调试,我下载了PythonForS60_SDK_2ndEd_1_3_1.zip,其实按照我的版本我应该采用FP1,不 过差别不大,也可以混用,在这个压缩包里有一个sdk_files.zip文件,把它的内容对应的都复制到EPOCROOT下,再重新启动模拟器,这时候 在功能表里就能看到python的图标了,进入python就能执行脚本了。
wxPython for symbian 是个非常简单快捷的symbian开发工具,它非常适合原型开发,或是为了开发C/Java程序做一些验证性的前驱工作,我虽然没有python基础,但 是因为python语言的简单易用,同样可以在很短的时间内写出程序。python作为一种symbian上的新的开发语言,应该说很有前途。
PS:这个程序在模拟器上调试成功了,但是在下载到手机上的时候却出现了问题,当在模拟器上选择run script执行脚本之后,一切正常,但是收到短信的时候才发现是乱码,本来我以为是因为python在处理中文的时候出现的问题,后来经过查找资料发现 原来发送短信的时候有两种方式,一种是纯文本方式,特点是简单易行,缺点是只支持英文,另一种就是PDU编码,它可以支持中文,但是比较麻烦,再寻找 PDU的资料,实在挺麻烦的,这个程序就告一段落吧。