Python中的GSM定位

4

我有一个在S60上运行的Python脚本文件:

import location

def current_location():
 gsm_loc = location.gsm_location()
 print gsm_loc

current_location()

不会打印mcc、mnc、lac和cellId的元组,而是打印了None。

在我的Python shell顶部,我看到了包含位置信息的功能。

问题可能出在哪里?

事态发展:

我认为也许是因为缺少功能的原因导致出现了问题。所以我去签署了PythonScriptShell文件。我使用了OPDA网站 - 我知道他们签署了除三个之外的所有功能 - 而这三个我没有使用过。我将签署后的PythonScriptShell文件安装在我的手机(N95)上。但是在列表顶部的功能清单没有改变。我尝试再次运行脚本:结果相同 - 打印了None。

如果有人能帮助我解决这个问题,那真的非常重要。

谢谢。

2个回答

2
我现在可以解答问题的一部分:
打印 None 的原因是因为需要另一个功能:ReadDeviceData,它没有包含在 Python shell 的能力列表中。
但是,问题的另一部分仍然存在,为什么在我签署 PythonScriptShell 文件时没有包含这个能力?它不是三个受限制的能力之一。

0

我遇到了与所有必要的脚本壳功能相同的问题:'PowerMgmnt'、'ReadDeviceData'、'WriteDeviceData'、'TrustedUI'、'ProtServ'、'SwEvent'、'网络服务'、'LocalServices'、'ReadUserData'、'WriteUserData'、'Location'、'SurroundingsDD'、'UserEnviroment'。

让我们来看一下PythonForS60/module-repo/dev-modules/location.py的源代码:

import e32
import _location

def gsm_location():
    if e32.s60_version_info>=(3,0):
        ret = _location.gsm_location()
        if ret[4]==1: # relevant information ?
            return (int(ret[0]),int(ret[1]),ret[2],ret[3])
        else:
            return None # information returned by _location.gsm_location() not relevant
    else:
        return _location.gsm_location()

在我的诺基亚E71上,e32.s60_version_info == (3,1),我也得到了None值。
我不太清楚“不相关”是什么意思,但可以直接调用。
>>> import _location
>>> _location.gsm_location()
(u'257', u'01', 555, 11, 0)

返回与我的客观现实相近的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接