Any app that lists ACCESS_MOCK_LOCATION in it's permissions, will be listed in developer
options as a Mock Location PROVIDER. It gets listed at app installation, done by the Android
operating system. If the app does not provide software support for
injecting mock locations into the android operating system, that app will not actually
provide mock locations and if that app is then selected as the mock location provider
in developer options, other apps which expect locations may or may NOT get locations fixes.
Whether they get location data depends upon what Android API access they use to get locations
as there are three levels of such access:
GPS
Location
Fused Location
As the Android API has developed these three system have been gradually created.
For Instance: most chart plotting software like Marine Navigator use calls to the early GPS hardware.
Google Earth apparently uses Fused Location calls and the Android operating system will provide
a location based on network, cell towers, wifi and other means.
It is unlikely but at least possible for a user to select a developer option for mock locations
that does not provide locations, in which case depending upon the app they are trying to use
they may get incomprehensible results. Leading to bug reports which are hard to track down.
For developers who might be testing this, be warned!
If you install an app that has the mock permission, select it in developer options.
Then remove the permission, reinstall the app. The app will not be listed in the developer
options, but may still be shown as the selected app. And, depending upon whether the code
that injects the locations is still active in your app, the system will or will not have access
to that location data.
This can be very confusing.
Examples of Android apps that list in the developer options as providing mock locations, but
which do not:
Sea Tow
Contacts
Messenger+
options as a Mock Location PROVIDER. It gets listed at app installation, done by the Android
operating system. If the app does not provide software support for
injecting mock locations into the android operating system, that app will not actually
provide mock locations and if that app is then selected as the mock location provider
in developer options, other apps which expect locations may or may NOT get locations fixes.
Whether they get location data depends upon what Android API access they use to get locations
as there are three levels of such access:
GPS
Location
Fused Location
As the Android API has developed these three system have been gradually created.
For Instance: most chart plotting software like Marine Navigator use calls to the early GPS hardware.
Google Earth apparently uses Fused Location calls and the Android operating system will provide
a location based on network, cell towers, wifi and other means.
It is unlikely but at least possible for a user to select a developer option for mock locations
that does not provide locations, in which case depending upon the app they are trying to use
they may get incomprehensible results. Leading to bug reports which are hard to track down.
For developers who might be testing this, be warned!
If you install an app that has the mock permission, select it in developer options.
Then remove the permission, reinstall the app. The app will not be listed in the developer
options, but may still be shown as the selected app. And, depending upon whether the code
that injects the locations is still active in your app, the system will or will not have access
to that location data.
This can be very confusing.
Examples of Android apps that list in the developer options as providing mock locations, but
which do not:
Sea Tow
Contacts
Messenger+