带有传感器和xprofile模块的诺基亚N95和PyS60

时间:2009-05-29 17:18:52

标签: python symbian nokia s60 pys60

我制作了一个python脚本,它应该根据手机位置修改手机的配置文件。在ScriptShell下运行它很有效。

问题在于它会挂起,“sis”脚本在“启动”时运行,以及没有它。

所以我的问题是代码有什么问题,以及我是否需要将特殊参数传递给ensymble?

import appuifw, e32, sensor, xprofile
from appuifw import *

old_profil = xprofile.get_ap()

def get_sensor_data(status):
    #decide profile

def exit_key_handler():
    # Disconnect from the sensor and exit
    acc_sensor.disconnect()
    app_lock.signal()

app_lock = e32.Ao_lock()

appuifw.app.exit_key_handler = exit_key_handler
appuifw.app.title = u"Acc Silent"
appuifw.app.menu = [(u'Close', app_lock.signal)]
appuifw.app.body = Canvas()
# Retrieve the acceleration sensor
sensor_type= sensor.sensors()['AccSensor']
# Create an acceleration sensor object
acc_sensor= sensor.Sensor(sensor_type['id'],sensor_type['category'])
# Connect to the sensor
acc_sensor.connect(get_sensor_data)

# Wait for sensor data and the exit event
app_lock.wait()

脚本在启动时启动,使用ensymble和我的开发人员证书。

提前致谢

2 个答案:

答案 0 :(得分:3)

我经常在脚本的顶部使用类似的东西:

import os.path, sys
PY_PATH = None
for p in ['c:\\Data\\Python', 'e:\\Data\\Python','c:\\Python','e:\\Python']:
    if os.path.exists(p): 
        PY_PATH = p
        break
if PY_PATH and PY_PATH not in sys.path: sys.path.append(PY_PATH)

答案 1 :(得分:2)

xprofile不是标准库,请确保添加路径。我的猜测是,当作为SIS运行时,它找不到xprofile并挂起。在发布SIS时,要么指示用户单独安装它,要么包含在SIS内。

您将在何处安装它,请使用该路径。这是python默认目录作为示例:


    # PyS60 1.9.x and above
    sys.path.append('c:\\Data\\Python')
    sys.path.append('e:\\Data\\Python')
    # Pys60 1.4.x or below
    sys.path.append('c:\\Python')
    sys.path.append('e:\\Python')

顺便说一下,退出,执行此操作:


    appuifw.app.menu = [(u'Close', exit_key_handler)]