2010-07-31 4 views
4

У меня есть этот файл сценария в питона, работающих на S60:расположение GSM в питона

import location 

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

current_location() 

вместо печати кортеж МСС, MNC, LAC и CellID не печатает Нет.

поверх моей оболочки python Я вижу местоположение между включенными возможностями.

В чем проблема?

Развитие ситуации:

Я подумал, может быть, тем не менее, моя проблема заключается в отсутствии возможностей. Поэтому я пошел подписывать файл PythonScriptShell. Я использовал сайт OPDA - я знаю, что они подписывают все возможности, но три - которые я не использую. Я установил подписанный файл PythonScriptShell на свой телефон (N95). В верхней части список возможностей не изменился. снова попытался запустить скрипт: такой же результат - отпечатки None.

Если кто-то может помочь мне в этом, это действительно важно.

спасибо.

ответ

2

Я думаю, что я могу сейчас ответить одну часть проблемы:

причина не печати None происходит потому, что требуется еще способность: ReadDeviceData который не был включен в список возможностей на вершине питона оболочки.

все еще, оставаясь другой частью проблемы, почему эта возможность не была включена, когда я подписал файл PythonScriptShell? Это не одна из трех ограниченных возможностей.

0

У меня такая же проблема со всеми необходимыми возможностями scriptshell: 'PowerMgmnt', 'ReadDeviceData', 'WriteDeviceData', 'TrustedUI', 'ProtServ', 'SwEvent', 'Сетевые сервисы', 'LocalServices', ' ReadUserData ',' WriteUserData ',' Местоположение ',' 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() 

На моей Nokia E71 e32.s60_version_info == (3,1) и я получаю None значение тоже.

Я не знаю, что значит «не имеет отношения», но прямого вызова

>>> import _location 
>>> _location.gsm_location() 
(u'257', u'01', 555, 11, 0) 

возвращает что-то близкое к моей объективной реальности.