Alright, so I have been investigating further, and have some news.
Thanks to the fact I work in a mobile dev company, I have access to more devices for testing, so I went on to try it more.
I modified the Hardware/GPS example app with:
- added : system.setLocationAccuracy(3000) into main.lua
- removed : _ “android.permission.ACCESS_FINE_LOCATION”, _ from build.settings
I built the APK, and tried it on various devices, and it seems that on some it works, on some it doesn’t. My current results :
Coarse location WORKING (indoors and even with GPS turned off) on:
…for these, the correct location shows up in about 3-4 seconds after I start the app.
- HTC Desire X (android 4.1.1)
- Huawei Ascend Y300 (android 4.1.1)
- Sony Xperia L (android 4.2.2)
- Samsung Galaxy Express (android 4.1.2)
- Samsung Galaxy S3 (android 4.3)
- LG (google) Nexus 4 (with developer preview Android 5.0)
- Samsung Galaxy S4 (android 4.4.2)
- Prestigio Multipad PMP5770D (android 4.1.1)
- Samsung Galaxy S4 Mini (android 4.2.2) — started working after multiple system reboots and repeated changing location settings on&off
- Acer Iconia B1-710 (android 4.1.2) — also started working after multiple system reboots and repeated changing location settings on&off
- HTC Desire S (custom rom android 4.1) — same as above
- ASUS Transformer TF101 (Android 4.0.4) — same as above
Coarse location NOT WORKING (i never get any location)
- HTC Desire S (custom rom android 4.1)
- ASUS Transformer TF101 (Android 4.0.4)
- Samsung Galaxy S4 Mini (android 4.2.2)
- Acer Iconia B1-710 (android 4.1.2)
*** all non working devices fixed as above. see EDIT 3 below.
So now the problem seems to be device specific, or maybe OS build specific… I will try to get even more devices, test further and report back.
EDIT : OK I am unsure what happened, but I restarted my S4 mini a couple of times, turned the location settings on and off on each checkbox, also a few times on and off again… and suddenly it started working even on this device…
EDIT2 : same thing happened with the Acer Iconia… a few reboots, few on&off clicks on the location checkboxes, and now i got the location available…
EDIT 3 - resolution - so I managed to get even the remaining two devices to read the coarse data. The trick, if it’s not working is to follow these steps :
-
go to location settings, and turn everything off (gps, network, cellular, wifi location, whatever checkbox you’ve got there).
-
turn everything on again.
-
REBOOT THE DEVICE.
after these three steps, even the last devices finally got the Coarse location data.
So obviously not exactly a Corona issue but more of an Android issue in general.
I guess I will have to hope my users will not run into the same problems, because I can’t explain all this to them. Maybe I’ll do a location check and if that fails, show some error message with the explanation, and an option to enter city manually… but i still can expect they will be pissed… android users love to complain. (and i am the prime example :D)
thanks for everyone who joined in the discussion, hope you have learned a bit just as I did here. maybe it will also help someone in the future.