How do I make GPS activated mandatory to collect data?
I want to know the coordinates of the site where the survey is carried out, but if the person turns off the GPS, the coordinate is not being recorded
Collect cannot control the Android system in this way.
- You might try finding another app that can lock access and keep your users from turning off GPS (if they are using a team device and not their own device). A site describing this: https://tweaklibrary.com/how-to-lock-settings-and-apps-on-android-phone/
- Another thing I haven't tried but may work is "pinning" Collect after turning on the GPS to prevent the person from using other apps or adjusting system settings. See this site: https://www.lifewire.com/lock-apps-android-4583099
One approach you can try is ask enumerators to turn on GPS as a requirement of employment. Then turn on form audit log and you see when location permissions or providers are enabled/disabled in the data. When you see that, contact the enumerator and ask why.
Thanks for your answers, both options are interesting.
We use this in our forms:
# Survey
- type: select_one WhyNoGPS
name: WhyNoVisitGPS
label::English (en): Why did you skip the GPS coordinates?
label::Français (fr): Pourquoi n'avez-vous pas saisi les coordonnées GPS?
hint::English (en): If possible, please go back and capture them; it helps us a lot.
hint::Français (fr): Si possible, retournez en arrière et saisissez les coordonnées. Elles sont importantes.
required: yes
relevant: ${VisitGPS} = ""
- type: text
name: WhyNoVisitGPSOther
label::English (en): Other reason why GPS was skipped
label::Français (fr): Autre raison pour laquelle les coordonnées GPS n'ont pas été saisies
required: yes
relevant: ${WhyNoVisitGPS} = 'other'
constraint: regex(., '.{3,}')
constraint_message::English (en): Please enter at least three letters.
constraint_message::Français (fr): Entrez au moins trois charactères svp.
# Choices
- list_name: WhyNoGPS
name: gps_takes_too_long
label::English (en): It takes too long to get GPS coordinates
label::Français (fr): Saisir les coordonnées GPS prend trop de temps
- list_name: WhyNoGPS
name: gps_unsupported
label::English (en): My phone cannot take GPS coordinates at all
label::Français (fr): Mon téléphone ne peut pas saisir le GPS du tout
- list_name: WhyNoGPS
name: gps_bad_conditions
label::English (en): Current conditions (like trees, clouds) make it impossible to get GPS coordinates
label::Français (fr): Les conditions sont trop mauvaises (p.ex arbres, nuages)
- list_name: WhyNoGPS
name: other
label::English (en): Other, please specify
label::Français (fr): Autre, veuillez préciser
I really like all of the approaches described so far.
To add to @yanokwa and @Sjlver's approaches, when I've worked with projects that need to have coordinates (or any other piece of data) I've made sure to have a live-updating dashboard or data table to see missing GPS coordinates in real time. This can be as simple as an Excel spreadsheet connected to the OData feed with a conditionally formatted column. That way submissions that come in with a missing location are visible and you can immediately follow up with the data collector and course-correct.
For longer-running projects with known staff, it might be worth looking into Mobile Device Management software which locks down devices and provides remote access for managing things like updates and settings changes.
@cooperka am I remembering correctly that you've worked with projects that use Microsoft Intune? That might only be reasonable for really large projects but it'd be helpful to hear a bit about your experience if you're up for sharing.
I don't have much experience with MDM solutions but if I needed to set it up for a small to mid size project I would first look at VMWare's ONE unified endpoint management. In particular, it supports scenarios in which data collectors use their own devices.
Yes I'm pretty sure TCC used MS Intune to configure stuff on the scale of thousands of smartphones. Unfortunately I haven't worked with it myself, and the person who set it all up has since left TCC so I have no details available to share
Found something actually! This is pretty neat:
Here is the process for enrolling the devices to InTune.
- Unbox device
- Turn on device
- Select English
- Setup wifi
- At prompt for entering google account information use “afw#setup” to activate Android for Work, then select “Next”
- Wait for opportunity to enroll device by scanning intune QR code and you're done
I have had Intune profiles created for my devices. Early days, but seems a much easier way to setup new devices as there is no need to create a google account for a device, and app setup is applied per the profile (so all the OEM cruft can be removed and the desired factory / ODK / other apps pushed to device.)
Can still update play store apps that are permitted, cannot install non provisioned apps, can join beta mode on ODK, can apply device software updates.
Initial teething problems with making sure all the required apps were there (eg camera was but they left gallery out, so you could take photos but not see them ) and device registration failed at first requiring a few factory resets but recently has been fine.
InTune itself can report location but it doesn't seem to be able to force Location Services to be always on, as far as I've seen so far.
The ease of setup (tap screen a few times at first boot, then scan QR code to start device enrolment) is very handy.
This is what Android reports for Intune