2013-06-07 20 views
7

Ho testato le nuove API di posizione di Android per alcune settimane. In generale funzionano abbastanza bene, tuttavia, il nuovo fornitore di Location spesso perde la trama.Il fornitore di posizione Fused Android si perde

In particolare, collego un esempio basato su the receive location updates example. Funziona correttamente e gli aggiornamenti della posizione vengono ricevuti come previsto.

Il problema sembra essere con il provider Fused stesso. In alcune zone (in particolare intorno a casa mia) si perde completamente. Improvvisamente penserò che sono a chilometri di distanza da dove sono. Intorno a dove lavoro (che è un'area più costruita) è molto più accurato e sempre ragionevolmente vicino a dove sono effettivamente (in modalità Balanced).

Ho fatto molti tentativi per risolvere questo problema, incluso il passaggio a PRIORITY_HIGH_ACCURACY quando sospetto che sia in errore, o utilizzando il precedente LocationManager per provare a ottenere una correzione GPS per stabilire dove sono realmente. Ma niente sembra aiutare troppo. Ho il sospetto che Google abbia dati errati su dove si trovano alcune torri mobili di hotspot WiFi intorno alla mia casa e, quando si connette a determinate torri, improvvisamente salta a pochi chilometri dalla vera posizione. È molto fastidioso e interferirà anche con l'API di Geofence. Qualche consiglio su come posso risolvere questo problema?

+0

cosa intendi passando al vecchio LocationManager e il GPS non aiuta molto? – paul

+0

Siamo spiacenti, non mi è stato comunicato il tuo commento. C'è un altro LocationManager in un diverso spazio dei nomi: http://developer.android.com/reference/android/location/LocationManager.html –

+2

Oh, e sì, il GPS risolve sempre il problema. Sembra che le posizioni errate siano correlate a letture errate provenienti da torri cellulari circostanti. –

risposta

1

Puoi semplicemente ignorare gli aggiornamenti della posizione che sono imprecisi? Questo codice è stato rilasciato su Google IO 2013, penso, quindi potrebbe ancora avere alcuni bug.

(sto vivendo la stessa cosa di te. Zona rurale, il provider di Fused posizione mi sta dando sedi in tutto il luogo)

+0

Ciao, Purtroppo no, non posso. Segnala alta precisione. Per esempio, mi dirà che è accurato di 11 metri, ma in realtà è fuori da 1,5 km. Poi improvvisamente torna di nuovo a posto. In questo momento ho solo bisogno di ricontrollare tutti i suoi risultati. Spero solo che migliorino col passare del tempo. È anche molto più accurato nelle aree fortemente urbanizzate. Penso che forse le informazioni sulla torre mobile in alcune località qui intorno siano appena obsolete. –

+0

Solo per il futuro; In realtà avevo dimenticato di concedere alla mia applicazione l'autorizzazione "android.permission.ACCESS_FINE_LOCATION". Il provider di posizione fuso funziona ancora ma fornirà solo posizioni inaccurate. –

+0

Sì no, ho sicuramente una buona posizione. La maggior parte delle volte, il fornitore di localizzazione fuso ha una precisione sorprendente, senza toccare il GPS. Lo trovo particolarmente vero in città, dove il GPS a volte si confonde comunque. –

0

ci sono dati cattive su alcuni AP WIFI di volta in volta, e questi tendono ripararsi dopo un po '. Un indizio su ciò che ti sta accadendo può essere trovato nella precisione restituita. Se quando si va nel posto sbagliato, la precisione è un numero elevato (centinaia di metri), il che implica che il fornitore di posizione fuso utilizza una posizione di cella. Può significare che non ci sono molti AP in cui vivi, e che puoi avere solo una posizione wifi una volta ogni tanto (o una volta ogni tanto non puoi avere una posizione wifi). L'FLP dovrebbe essere migliore per evitare questi salti nel tempo man mano che gli algoritmi migliorano.

Se la posizione errata che si ottiene ha una piccola precisione (circa 30 metri), ciò implica che si tratta di una posizione wifi e le informazioni del database AP errate probabilmente spiegano il problema.

Problemi correlati