Android simulacro de ubicación sin configuración de ubicación falsa (dispositivo con raíz)

Estoy desarrollando una aplicación para Android, que te permite simular tu ubicación sin tenerla habilitada en la configuración del desarrollador.

Intenté algunas cosas para hacer esto pero sin ningún éxito.

Mi código actual funciona si la configuración está habilitada, pero no si está deshabilitada (incluso cuando la aplicación es una aplicación del sistema)

Mi código:

if (mLocationManager.getProvider(GPS_PROVIDER_NAME) != null) { mLocationManager.removeTestProvider(GPS_PROVIDER_NAME); } mLocationManager.addTestProvider( GPS_PROVIDER_NAME, "requiresNetwork" == "", "requiresSatellite" == "", "requiresCell" == "", "hasMonetaryCost" == "", "supportsAltitude" == "", "supportsSpeed" == "", "supportsBearing" == "", android.location.Criteria.POWER_LOW, android.location.Criteria.ACCURACY_FINE ); currentLocation = new Location(GPS_PROVIDER_NAME); currentLocation.setLatitude(mockLocationLatLng[0]); currentLocation.setLongitude(mockLocationLatLng[1]); currentLocation.setTime(System.currentTimeMillis()); currentLocation.setAltitude(1); currentLocation.setSpeed(200); currentLocation.setAccuracy(500); mLocationManager.setTestProviderLocation(GPS_PROVIDER_NAME, currentLocation); mLocationManager.setTestProviderEnabled(GPS_PROVIDER_NAME, true); mLocationManager.setTestProviderStatus(GPS_PROVIDER_NAME, LocationProvider.AVAILABLE, null, System.currentTimeMillis()); 

¿Hice algo mal? lamentablemente no sé cómo se debe hacer cuando se tienen los derechos de sistema / aplicación.

¿Tiene alguna sugerencia de cómo resolver esto? No necesito un código de programa completamente funcional, sólo una manera de cómo se puede hacer.

¡Gracias por tu ayuda!

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.