在Android中使用QPython的位置不会返回GPS坐标 - 仅限#34;网络"

时间:2015-07-28 03:41:22

标签: android gps qpython

我在Android手机上使用QPython编写一个非常简单的脚本。我想提取当前位置的GPS坐标。但是,脚本只输出"网络"坐标,从不GPS。以下是代码段:

#qpy:2
#qpy:console

import androidhelper as android
import time, urllib2
while 1:
    time.sleep(5)
    droid=android.Android()
    droid.startLocating()
    event=droid.eventWaitFor('location', 10000).result
    try:
        lng=event['data']['gps']['longitude']
        lat = event['data']['gps']['latitude']
        print "Longitude: %s ||| Latitude: %s" %(lng,lat) 
    except:
        print "Network Coordinates"

我尝试了最短的更新时间,例如:droid.startLocating(10000, 0) 增加eventWaitFor()的等待时间,四处移动,但我唯一得到的坐标是网络'。有没有办法强迫"强迫" GPS坐标的返回?

2 个答案:

答案 0 :(得分:0)

在玩完这个之后,事实证明,如果你打电话给droid.getLastKnownLocation()并且你移动了一点,你会得到更新的GPS坐标

答案 1 :(得分:0)

我有一台较旧的Nexus 7平板电脑,其中大部分结果都是"网络",但" gps"偶尔会来。在较新的手机上,我获得绝大多数" gps"结果,每隔几秒就会产生一次。以下代码过滤掉"网络"结果并修复了系统未更新lat / lon坐标的问题。

   #-*-coding:utf8;-*-
   #qpy:3
   #qpy:console

   import android
   droid = android.Android()

   while True:
       droid.startLocating()
       droid.eventWaitFor('location', int(9000))
       location = droid.readLocation().result
       if len(location) > 0:
           # print('\n', location)
           if 'gps' in location:
               print('\n' + location['gps']['provider'])
               print('Time:' + str(location['gps']['time']))
               print('Lat:' + str(location['gps']['latitude']))
               print('Lon:' + str(location['gps']['longitude']))    
       droid.stopLocating()