¿Cómo configuro una ubicación personalizada / simulada en Android?

En testmunk escribimos un resumen de cómo puede burlarse de la ubicación en los dispositivos Android y ejecutar pruebas automatizadas. Involucra los siguientes pasos:

Preparando la construcción
– agregue ‘ubicación simulada de acceso’ en su archivo de manifiesto
– establecer depurable a verdadero

Cambie la configuración del dispositivo a ‘Permitir ubicación falsa’

Escriba un paso de prueba que incluya la longitud y la latitud, por ejemplo, utilizando la estructura de automatización de calabaza:
Entonces / ^ Estoy en ([- +]? [0-9] * \.? [0-9] +), ([- +]? [0-9] * \.? [0-9] + ) $ / do | latitud, longitud |
set_gps_coordinates (latitud, longitud)
fin

La reseña completa la encontrará aquí: Prueba de la burla de ubicación en dispositivos Android (código abierto)

y aquí está el repositorio de código abierto de github: testmunk / calabash-location-mocking

¡No dude en comunicarse si tiene alguna pregunta!

¿Funciona esto para el requisito anterior?

privado void setMockLocation (doble latitud , doble longitud , precisión de flotación ) {

lm . addTestProvider ( LocationManager . GPS_PROVIDER ,
“requireNetwork” == “” ,
“requiere satélite== “” ,
“requireCell” == “” ,
“hasMonetaryCost” == “” ,
“supportsAltitude” == “” ,
“supportsSpeed” == “” ,
“supportsBearing” == “” ,
Android ubicación Criterios POWER_LOW ,
Android ubicación Criterios PRECISIÓN_FINA );

Location newLocation = nueva ubicación ( LocationManager . GPS_PROVIDER );

nuevoUbicación setLatitude ( latitud );
nuevoUbicación setLongitude ( longitud );
nuevoUbicación setAccuracy ( precisión );

lm . setTestProviderEnabled ( LocationManager . GPS_PROVIDER , verdadero);
lm . setTestProviderStatus ( LocationManager . GPS_PROVIDER , LocationProvider . DISPONIBLE , nulo, System . currentTimeMillis ());
lm . setTestProviderLocation ( LocationManager . GPS_PROVIDER , newLocation );
}

** lm es un objeto de LocationManager **

No creo que lo que quieras aquí sean ubicaciones simuladas.

Si desea que las aplicaciones asuman que se encuentra en una ubicación particular, entonces no es la ubicación GPS que las aplicaciones como Google o Play Store usan para la detección de ubicación. Las aplicaciones usan tu IP para eso. El uso de IP lo hace muy fácil y genérico, ya que todos tendrán uno, a diferencia del GPS que se puede desactivar con un solo clic.

Puede enmascarar su ubicación usando VPN . Prueba Tunnel bear para empezar, simple y rápido. Puede hacer diferentes perfiles para enmascarar su IP.

Después de permitir ubicaciones simuladas y si desea ir a la ruta del appium en lugar de la ruta de la calabaza como explica Martin Poschenrieder a continuación. Utilice este ejemplo de código para appium JS

Que yo sepa, solo puede establecer la ubicación simulada para su propia aplicación, no todas las aplicaciones en el dispositivo. Para probar su aplicación con ubicaciones simuladas, puede seguir el tutorial aquí: Prueba con ubicaciones simuladas

¿Podrían ayudarme con respecto a los errores en mi código de Android? ¿Puedes revelar tu originalidad?