microg / UnifiedNlp

Alternative network location provider for Android, with plugin interface to easily integrate third-party location providers.
973 stars 210 forks source link

no last known location, no location in 10 either #123

Open lulap opened 7 years ago

lulap commented 7 years ago

android 444 gapps uninstalled from system root

uNLP gapps version, fdroid apple wifi location local gsm location local wifi

uNLP self test

first 5 checked

  1. no last known location

  2. no location provided in 10 seconds

wifi settings: always allow scan, always on

uNLP noGapps version would not pass self test first 5

(recent few uNLP updates or provider updates causes nominatum address lookup crash. it is now disabled.I don't have enough info for separate ticket yet)

lulap commented 7 years ago

[cannot find edit on mobile]

high accuracy mode

waze detects location as does mapquest and ChartCross gps test.

I am not claimimg this is new, but I only recently noticed self test in gps settings whereas initially I had only been able to see self test menu in app on fresh install.

climf commented 7 years ago

These 2 self tests fails for me as well with a similar setup. Mapquest receives location with precision

thuryn commented 7 years ago

I've found the problem. Nominatim uses snakeyaml library for parsing. This library uses java7 API. When I replace classes from java7 API with com.googlecode.openbeans, it works fine. So we need to find the proper solution for this issue.

ale5000-git commented 7 years ago

@lulap: Have you tried with Nominatim Geocoder Backend version 1.2.2?

djibux commented 7 years ago

I'm experiencing the same issue: uNLP keeps reporting no known location.

I use "LocalWifiNlpBackend" that records Wifi Access Points. Apps like "OSMAnd" manage to get my position almost instantly even when I disable "High Accuracy mode". So I'm gessing uNLP works but the Settings screen is broken. It's confusing…

n76 commented 7 years ago

@djibux wrote 'Apps like "OSMAnd" manage to get my position almost instantly even when I disable "High Accuracy mode".'

If you have disabled high accuracy mode then you are likely getting a location via GPS only. If the location is acquired almost instantaneously, then it is possible your phone has better than average GPS chip and/or firmware.

Use of an app like SatStat can show you both the GPS and network based location. I use it whenever I am working on my location backends as it gives very good feel for how well my backend code is working.

djibux commented 7 years ago

Sorry I should have been clearer. I selected "Battery Saving" mode rather than "High Accuracy" or "Device only". As far as I understand, "Battery Saving" mode works with wifi and cellular networks.

I tried SatStat and indeed the first tab is emply (GPS) but I get data in the third tab (Wifi and GSM). I manage to get my position on the map in the fourth tab. UnifiedNLP doesn't report a location, as described in the bug report.

n76 commented 7 years ago

@djibux Curious that SatStat shows you have a network based location but UnifiedNlp isn't reporting a location. There must be something on your phone that is reporting that location.

What ROM are you running? Was Google Mobile and/or Play Services ever installed on that ROM? If Google was ever installed, how did you uninstall it?

djibux commented 7 years ago

@n76 My rom is an official Lineage OS build with no gapps. I pushed UnifiedNlp to priv-app folder as suggested in the install instructions.

Location setting reports UnifiedNlp Settings as the only available "Location services".

ArchangeGabriel commented 7 years ago

I’ve always considered this as a well known bug of LineageOS (I think I had reported it somewhere, but not sure about this). Network location works fine with UnifiedNlp/μG, but the self-check always report that it does not. I’ve just got used to ignore it as long as it actually worked (and I’m now running OmniROM where the self-check also works).

@thuryn seems to had an idea about this right above (https://github.com/microg/android_packages_apps_UnifiedNlp/issues/123#issuecomment-292209560), but we’ve never heard of @mar-v-in about this. That being said, we have not been hearing much at all from him lastly…

mar-v-in commented 7 years ago

@ArchangeGabriel thuryn 's problem above is completely unrelated (as it's part of nominatim) and should be fixed already.

I guess this problem is due to a proprietary location provider by Qualcomm installed with some custom ROMs. Just to tell the obvious: when unifiednlp self-check reports that it did not receive a network location from unifiednlp and other apps report they got a network location, this means that either they got a network location from somewhere else or your operating system is blocking unifiednlp self-check from location access.

ArchangeGabriel commented 7 years ago

@mar-v-in I’ll try to check exactly what gives a location to apps by feeding an obviously wrong Wi-Fi database to the LocalWiFiBackend, but I’m quite sure there is no Qualcomm thing involved here. So that would leaves us with UnifiedNlp self-check not accessing location. Is there a permission for this? I think μG GMS Core and UnifiedNlp have location permission and that should cover Self-Check, right?

n76 commented 7 years ago

@ArchangeGabriel it would be a lot easier to simply look at logcat for lines that have NlpLocationBackendFuser in them. That is the UnifiedNlp logging what back end it got a location from and some details about the location. If you are getting those, then UnifiedNlp is running, if not then the location is coming from some other piece of software.

Edit: You wrote: "I think μG GMS Core and UnifiedNlp have location permission and that should cover Self-Check, right?". Does that mean that you have both GmsCore and UnifiedNlp installed? That could be a problem, GmsCore contains UnifiedNlp so that would mean you might have to instances of UnifiedNlp trying to run.

ale5000-git commented 7 years ago

Run my removal script (that remove conflicting GApps, microG and alternatives location services) and then reinstall microG; after it, it should work instantly.

djibux commented 7 years ago

@n76 I just tried an adb logcat. I am getting lines with NlpLocationBackendFuser when starting SatStat.

09-14 20:40:12.712  4869  4881 V NlpLocationBackendFuser: location=Location[network xx,xxxxxx,x,xxxxxx acc=49 et=+4m32s429ms {Bundle[{noGPSLocation=Location[network xx,xxxxxx,x,xxxxxx acc=49 et=+4m32s429ms], SERVICE_BACKEND_PROVIDER=ichnaea, SERVICE_BACKEND_COMPONENT=org.microg.nlp.backend.ichnaea/.BackendService}]}]

No such line appear when using a self check in UnifiedNlp.

ArchangeGabriel commented 6 years ago

@n76 Sorry for the delay… No, I only had GmsCore installed. As I said above, I’m no longer on LineageOS as I said above but may return to it since two apps I need are detecting my system as “not secure” under OmniROM without any obvious reason while I’ve recently discovered LineageOS μG builds and I know that those apps works under LineageOS (or at least did while I was using it).

That being said, @djibux already answered your question, right?

bam80 commented 6 years ago

Any news? Having the same problem on https://carbonrom.org/, conditions are the same as @djibux has