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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中QPython的位置不返回GPS坐标 - 仅“网络”相关的知识,希望对你有一定的参考价值。

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

答案

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

另一答案

我有一个较旧的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('
', location)
           if 'gps' in location:
               print('
' + location['gps']['provider'])
               print('Time:' + str(location['gps']['time']))
               print('Lat:' + str(location['gps']['latitude']))
               print('Lon:' + str(location['gps']['longitude']))    
       droid.stopLocating()

以上是关于Android中QPython的位置不返回GPS坐标 - 仅“网络”的主要内容,如果未能解决你的问题,请参考以下文章

在Python中获取精确的Android GPS位置

GPS提供商不返回我当前的位置android

Android 的 FusedLocationApi 不激活 GPS 并返回非常旧的日期

Android 位置管理器每次返回相同的 GPS 坐标

Android GPS以不同的精度返回相同的位置坐标

Android GPS定位速度不可靠