--- name: android_emu_geo_fix kind: function lang: bash domain: infra version: "1.0.0" purity: impure signature: "android_emu_geo_fix([--serial ], longitude: string, latitude: string, [altitude: string]) -> void" description: "Fake GPS location on Android emulator via emu geo fix. Emulator-only (not physical devices)." tags: [android, emulator, geo, gps, location] params: - name: "--serial " desc: "Optional emulator serial. Auto-detected if omitted." - name: "longitude" desc: "Longitude (decimal degrees). Passed first — opposite to human lat/lon convention." - name: "latitude" desc: "Latitude (decimal degrees)." - name: "altitude" desc: "Optional altitude in meters." output: "Stdout 'GPS set: , (alt=...) on '. Exit 0." uses_functions: [adb_wsl_bash_infra] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] tested: false tests: [] test_file_path: "" file_path: "bash/functions/infra/android_emu_geo_fix.sh" --- ## Ejemplo ```bash # Fijar GPS en Madrid (emulador activo) android_emu_geo_fix -3.7038 40.4168 # Con altitud android_emu_geo_fix -3.7038 40.4168 650 # Emulador especifico android_emu_geo_fix --serial emulator-5554 -3.7038 40.4168 ``` ## Notas El orden de argumentos es **longitud primero, latitud segundo** — opuesto a la convencion humana habitual (lat/lon). Esto sigue el protocolo del comando `emu geo fix` de Android. Solo funciona en emuladores (`emulator-*`). Si el serial apunta a un dispositivo fisico, la funcion sale con error y exit 1. Usa `adb_pick_serial` de `adb_wsl.sh` para resolver el dispositivo objetivo. Sale con exit 3 si no hay ningun device conectado.