Sostituire il provider di segnali GPS predefinito nei dispositivi Android

Vorrei sostituire il provider di localizzazione GPS predefinito sui telefoni Android con la mia fonte di coordinate.

C'è qualche livello / API / libreria / fornitore che consentirebbe di essere sostituito con il mio fornitore di segnali anziché il GPS hardware incorporato o letto da un plugin esterno? Deve consentire a tutte le applicazioni che contano sul servizio GPS di ricevere il mio segnale anziché GPS. Idealmente, la sostituzione dovrebbe ancora essere in grado di accedere al segnale GPS (per il confronto / la correzione o per alternare tra i due fornitori).

  • SurfaceView con anteprima della telecamera non viene distrutto
  • Come si integra i caratteri personalizzati in un'applicazione?
  • Come fare la barra di scorrimento a sinistra?
  • emulatore: la window dell'emulatore era fuori visione ed è stata recensita
  • Problemi di Android JSON CharSet UTF-8
  • Problemi che tentano di build PocketSphinxAndroidDemo utilizzando NDK
  • Penso ad esempio di implementare il mio LocationManager e la logging nel sistema (come facoltativo o predefinito), se è ansible. Ma in questa fase, sto ancora cercando di scoprire ciò che è ansible e appropriato.

    Grazie per tutti i puntatori.

  • Come controllare la visibilità di TextView utilizzando IF
  • CardView all'interno di RecyclerView ha margini supplementari
  • Servizio condiviso Android?
  • OnCreateView chiamato più volte / Lavorare con ActionBar e frammenti
  • Imansible eseguire la migrazione di progetto a Gradle in Android Studio
  • Android App alternare Mercato o luogo
  • 3 Solutions collect form web for “Sostituire il provider di segnali GPS predefinito nei dispositivi Android”

    Sono abbastanza sicuro che i fornitori di posizione predefiniti per una posizione ottimale siano cotti in Android.

    Dato che Google sta diventando più consapevoli di potenziali abusi e abusi delle risorse di sistema da parte delle applicazioni, direi che è una cosa buona. Altrimenti le persone potrebbero ingannare l'utente nel pensare che siano da qualche altra parte, usando l'impostazione "Usare i satelliti GPS".

    L'unico modo in cui posso vedere che puoi aggiungere un provider di località è tramite [android.location.LocationManager.addTestProvider (……)] [1], che richiede l'authorization ACCESS_MOCK_LOCATION. Ora, questo metodo e l'authorization sono entrambi documentati come per scopi "test". Non riesco a trovare una fonte che specifica che tale authorization non è concessa per le applicazioni di rilascio del mercato, ma sospetto fortemente che sia il caso.

    [1]: http://developer.android.com/reference/android/location/LocationManager.html#addTestProvider(java.lang.String , boolean, boolean, boolean, boolean, boolean, boolean, boolean, int, int)

    Sostituire il "predefinito" non è consentito in questo momento e l'unico lavoro in giro è quello di creare un provider falso. In primo luogo è necessario impostare l'authorization di protezione:

     <utilizza-permission android: name = "android.permission.ACCESS_MOCK_LOCATION" />
    

    In secondo luogo, impostare il codice per utilizzare il fornitore di mock che si creerà. Ci sono alcune ottime informazioni su come realizzare questo qui: http://diffract.me/2009/11/android-location-provider-mock/

    Sono al momento in procinto di leggere attualmente l'SDK Android. Tuttavia la mia comprensione è che si fornisca un'implementazione di un intento GPS_PROVIDER.

    Ogni applicazione può quindi deviare per utilizzare l'intento GPS_PROVIDER preferito dall'utente.

    Vedi: http://developer.android.com/guide/topics/intents/intents-filters.html

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.