Android中QPython的位置不返回GPS坐标 - 仅“网络”

问题描述 投票:0回答:2

我在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坐标?

android gps qpython
2个回答
0
投票

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


0
投票

我有一个较旧的Nexus 7平板电脑,其中大部分结果都是“网络”,但偶尔会出现“gps”。在较新的手机上,我获得了绝大多数“gps”结果,并且每隔几秒就会以大约1的速度运行。以下代码过滤掉“网络”结果,并修复了系统未更新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()
© www.soinside.com 2019 - 2024. All rights reserved.