Human Auth: Location
Use this when an app needs the user's real GPS location but the Agent Phone has no real GPS.
When to Trigger
- App requests location permission and shows "location not available" or defaults to wrong location.
- App needs "nearby" results but the emulator has no GPS fix.
- Capability Probe detects
location/ACCESS_FINE_LOCATIONactivity.
How to Call
request_human_auth( capability: "location", instruction: "Please share your current GPS location for [purpose].", uiTemplate: { allowLocationAttachment: true, requireArtifactOnApprove: true, title: "Location Needed", summary: "Share your current location coordinates." } )
After You Receive the Artifact
The artifact is a JSON file with lat and lon fields. Read it first: read(<artifact_path>).
On Emulator
-
Inject GPS coordinates:
shell("adb emu geo fix <lon> <lat>")Note:
geo fixtakes longitude first, then latitude. -
Go back to the app and refresh. The app may need:
- Pull-to-refresh
- Tap a "Refresh location" or "Use current location" button
- Force-stop and relaunch:
shell("am force-stop <package>")thenlaunch_app(<package>)
On Real Device
Direct GPS injection is not possible on non-rooted real devices. Instead:
- If the app has a search box or address field, type the coordinates or a nearby address.
- If the app has a map with a pin, try to manually position it.
Tips
- Inject coordinates BEFORE the app requests location for best results.
- Some apps cache location aggressively — force-stop and relaunch if needed.


