The Mock location unable to setup for Android and iOS devices with the Testcomplete methods
The Mock location is unable to set up for Android and iOS devices with the Testcomplete methods. I have tried with the below VB script with valid Lattitude and longitude values, the script result shows as with the given longitude and latitude values but when we check in google maps or in any other applications the location still shows the current location.
Sub MockGPSLocation
Call Mobile.SetCurrent("Nexus 7")
' Enable GPS
Mobile.Device.GPS.GPSEnabled = true
' Enable the "Allow mock locations" property
Mobile.Device.GPS.AllowMockLocations = true
' Obtain current location data
Longt = Mobile.Device.GPS.Location.Longitude
Lat = Mobile.Device.GPS.Location.Latitude
Alt = Mobile.Device.GPS.Location.Altitude
Acc = Mobile.Device.GPS.Location.Accuracy
' Output the location data
Call Log.Message("The current device location is:")
Call Log.Message("Longitude: "&Longt)
Call Log.Message("Latitude: "&Lat)
Call Log.Message("Altitude: "&Alt)
Call Log.Message("Accuracy: "&Acc)
' Open Google Maps in the browser and pass the current coordinates as URL parameters
Call Browsers.Item(Browsers.btIExplorer).Run("http://maps.google.com/maps?q=loc:"&Lat&","&Longt)
' Change the coordinates
Longt = Longt+0.005
Lat = Lat+0.005
' Specify a mock location
Call Mobile.Device.GPS.SetLocation(Longt,Lat,Alt,Acc)
' Output the new location data
Call Log.Message("The device mock location is:")
Call Log.Message("Longitude: "&Longt)
Call Log.Message("Latitude: "&Lat)
Call Log.Message("Altitude: "&Alt)
Call Log.Message("Accuracy: "&Acc)
' Open a new tab in the browser
Call Sys.Browser("iexplore").BrowserWindow(0).Keys("^t")
Call Delay(1000)
' Open the new location in Google Maps
Call Sys.Browser("iexplore").Page("about:Tabs").ToUrl("http://maps.google.com/maps?q=loc:"&Lat&","&Longt)
End Sub ' Disable mock locations
Mobile.Device.GPS.AllowMockLocations = false
See Also
Hi AlexKaras,
Please find the below my inline comments:
--You executed TestComplete script that enabled geolocation mocking on the device, modified current location (by increasing both longitude and latitude by 0.005) and finished with the geolocation mocking on the device been left enabled;----Yes, I have given longitude and latitude for a deferent location(eg: my current location is India mock location given as USA), I ran the script after updating the required settings in mobile device from developer options(GPS location on,Device only, mock location app as Testcompleteandroid agent etc..)
-- Then you manually opened some other application on the device and this application showed initial location. (Not the location with the coordinates increased by 0.005.) --- I opened google maps to check my current location but it is still showing the current location instead of mock location.
I have raised a ticket with SmartBear after a couple of discussions with the team, Smartbear confirmed there is a defect and informed us that they going to provide patch/release in a few days. This issue is exist for both android and iOS devices.