I am designing an app for online grocery, the app asks the user to choose the city and the region these data will be used to filter the markets and for the delivery address. In the case the delivery service is not supported yet in his city or region, he is asked to vote for his region to support delivery there. Is it usable to make sure that the user votes for his region is to ask him to turn on the GPS ? Because I do not want him to vote for other regions. In the case yes, what will happen if the user refuses to turn the GPS?
Most of the time it's not a good idea to do this as user gets annoyed but you can keep some things in mind to handle it better.
Use whatever suits you best from below...
If the App is available only in couple of cities or a few cities, considered just showing this info and asking the user to vote for his city.
If all you need is just the City where the user is at then, you don't necessarily need to turn location services on. The same can be achieved by Wifi or GSM info
Don't take the user to another screen to turn on the services but ask in the app and do it for him if s/he accepts. Most Cab/taxi apps do the same (Surprisingly Uber, in my country, takes me to settings and I have to turn on manually)
Consider the need: When the app relies heavily/continuously on GPS for its main functionality, GPS need to be turned on everytime but if not consider other options as well. User's won't mind if you ask them to turn on GPS for tracking service but ask the same in a news app, things will not be same.
If the app gives slightly better results/experience with GPS than without GPS, mention this within app at the right place and ask users to turn on GPS subtly at the right time.
If you can, let the user know why you're going to ask for permissions before asking. "Sharing your location will help you [better accomplish a goal]. Please accept on the next screen." Or similar. Then they are not surprised by the request and understand how it will benefit them and their use of the app.
In the case mentioned above, I would not see a strong enough use case to accept sharing my location with the app. I might also note that not everyone is in their home location all the time or may want to vote for the location they feel useful for someone else - "my mother would like this.. I'll vote for her location" or they may be traveling and want to vote for a location they are not in currently.
It is fine to prompt them to switch on GPS, but it should be easy (i.e. you prompt them, they click "Ok" and then it is switched on for them. It isn't so nice if they have to leave the application and navigate through their settings to switch it on before returning to the application.
If the above is easy, you could order the actions this way to ensure accurate voting:
- Prompt user to turn on location services
- If they don't, prompt user to manually select their city / region
- If service not available in that region, allow voting for selected / detected region.