Posts Tagged ‘ PyS60

八歧大蛇

人生苦短,请用Python

—— lili大神

Python原义大蟒蛇,我的翻译是”怕甚”

各种跨平台,各种库,各种方便…绝对是个八面玲珑的大蛇…

上次SauceForge们用它写了个”CPU占用率是亮点”的程序,居然又水进复赛…

在寝室堕落n天之后,今天折腾了个发短信的script…

以上除引用外都是废话,请无视…正文即将开始

不得不说symbian s60还是有眼光的,居然官方支持Python…

PyS60请移步这里下载(包括SDK和文档): s60第二版及以前 s60第三版及以后

我杯具的N70上的最新版本是1.4.5(Python版本2.2.2),当然,够用就好

(继续悄悄地想换手机了…)

Python for s60 截图翻了下文档,系统提供的API还是相当齐全的,包括对信息、联系人、日历、照相机、蓝牙、传感器…总之你能想到的手机功能都可以实现

于是写了个练了下手…

输入收信人的称呼或者号码 输入信息内容 收件箱,已送达

如果发现有多个人符合要求还应该让用户来选择(下图是在”收件人”一栏填了个”张”之后的情况):

选择收信人

代码就不贴了,在这里下载

折腾出来的几条…算是经验吧:

1)关于sms_send()这个函数

函数的原型是:

sms_send(number, msg, [encoding='7bit', callback=None, name="" ])

其中number和msg都是utf-8的字符串(想想电话号码里的”+86″你就理解了), encoding在我手机上是”UCS2″(应该是跟运营商有关)

上面的编码要严格遵循,否则会出现各种各样的乱码…

2)嗯…编码…所有要显示的字符串都点一个decode(‘utf-8′)吧…这样保险

3)raw_input()这个函数在脚本模式下运行不正常,按”OK”键没办法结束输入,不晓得是bug呢还是bug呢…

4)于是改用GUI读取输入了…相当简单,导入appuifw这个图形界面模块之后,appuifw.query()就是输入框,appuifw.popup_menu()就是弹出的单选框,appuifw.note()就是提示框

5)这样发出去的短信在发件箱里没保存,于是我猜想系统自带的那个信息程序还加了句把信息存到发件箱里…inbox那部分还没看,懒得加了= =b…