Получить точное Android GPS-местоположение в Python

Я пытаюсь получить GPS-местоположение моего телефона Android в Python (с помощью приложения QPython3). Этот вид работает, но, похоже, в Android есть несколько LocationProviders:

GPS: Чистое местоположение GPS, медленно, потребляет энергию, но очень точно, и именно то, что мне нужно.сеть: сочетание GPS и Wi-Fi / сотовой локации, быстрее, но менее точнопассивны: как выше, но полностью без использования GPS

Проблема: Когда я запускаю свой сценарий (ниже), я получаю только свое местоположение, предоставленное «сетью», которое недостаточно точно.

Но я не могу найти способ заставить конкретного LocationProvider.

Код:

# import needed modules
import android
import time
import sys, select, os #for loop exit

#Initiate android-module
droid = android.Android()

#notify me
droid.makeToast("fetching GPS data")

print("start gps-sensor...")
droid.startLocating()

while True:
    #exit loop hook
    if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
        line = input()
        print("exit endless loop...")
        break

    #wait for location-event
    event = droid.eventWaitFor('location',10000).result
    if event['name'] == "location":
        try:
            #try to get gps location data
            timestamp = repr(event['data']['gps']['time'])
            longitude = repr(event['data']['gps']['longitude'])
            latitude = repr(event['data']['gps']['latitude'])
            altitude = repr(event['data']['gps']['altitude'])
            speed = repr(event['data']['gps']['speed'])
            accuracy = repr(event['data']['gps']['accuracy'])
            loctype = "gps"
        except KeyError:
            #if no gps data, get the network location instead (inaccurate)
            timestamp = repr(event['data']['network']['time'])
            longitude = repr(event['data']['network']['longitude'])
            latitude = repr(event['data']['network']['latitude'])
            altitude = repr(event['data']['network']['altitude'])
            speed = repr(event['data']['network']['speed'])
            accuracy = repr(event['data']['network']['accuracy'])
            loctype = "net"

        data = loctype + ";" + timestamp + ";" + longitude + ";" + latitude + ";" + altitude + ";" + speed + ";" + accuracy

    print(data) #logging
    time.sleep(5) #wait for 5 seconds

print("stop gps-sensor...")
droid.stopLocating()

Пример вывода (фальшивые координаты):

net;1429704519675;37.235065;-115.811117;0;0;23
net;1429704519675;37.235065;-115.811117;0;0;23
net;1429704519675;37.235065;-115.811117;0;0;23

Суммирование: Как получить точное местоположение GPS в Android с помощью Python?

Спасибо всем заранее!

РЕДАКТИРОВАТЬ: уже проверено:

внутри снаруживключено выключеноWiFi GPS включен (до запуска скрипта)

Ответы на вопрос(2)

Ваш ответ на вопрос