GPS doesn´t work on FP Open OS

I’m on Fairphone open 16.06. Installed µG unifiedNlp (NoGAPPS) from Fdroid.
GPS works on ‘device only’ and Osmand~ (takes about a minute to get my exact position).
Whait i did was change gps.conf “intermediate_pos=0 to 1” and the workaround described by ‘Unified NLP on Fairphone 2’




Have two backends installed ‘LocaGsmNlpBackend’ and ‘LocalWifiNlpBackend’.
First backend works but LocalWifiNlpBackend doesn’t seem to store any Acces points.

Same here. FPOS easily takes 10 minutes to find any location while satstat shows a 10/16 fix all the time. When I shut off the displaY it starts from scratch and takes another 5-10 minutes. Very frustrating, that is.
No gapps i stalled. No unified NLP installed, just gps enabled.

Have you downloaded a database? local = offline = needs a database

1 Like

Hello, It works now but the GPS needs to find your location first (can take a while) ,the moment the GPS has your
location then it starts recording the AP’s in your area so LocalWifiNlpBackend doesn’t need a database, it creates it’s own.
I think i was a little to impatient before.

For LocaGsmNlpBackend I made the phone build it’s own local database with Mozille Location Services enabled ( took about 2 hours to create it and you need a steady internet connection). Didn’t use Opencellid because it always gives an
error while building the database.

1 Like

I am using FP Open OS 16.06 and updated OpenGAPPS pico (version from 20160611) to pico (version 20160709) and now the error Message

disappeared! And everything seems to work fine. :slight_smile:
Please Note: GPS-Only was always working for my device!

3 posts were split to a new topic: Unfortunately, Google Play Store has stopped

I tried the steps and Tipps here , but if i open osmand it JUMP through hole City and after time crashes and must reboot. Could that be solved in the next update for open OS?

Have you tried reinstalling OsmAnd and/or clearing it’s cache?

Now i tried to clear cache, now somand works. Must try if its works with father.io and Pokémon go :stuck_out_tongue_winking_eye:

1 Like

:flag_de: I have received the following answer from support in German:

Hallo ,danke
für Deine NAchricht. Bzgl. des Fehlers, dass beim Klick auf die Karte
die App abstürzt haben wir unter dem Betriebssystem Android 6.0
festellen können. Bei Google wissen sie schon um dieses Problem und
suchen nach Lösungen -> https://code.google.com/p/gmaps-api-issues/issues/detail?id=9071
Wir rechnen damit, dass Google den Fehler mit dem nächsten Update
behebt. Allerdings sollte dieser schon in der neuesten Version unserer
App behoben sein. Könntest Du bitte prüfen, ob Du ein Update der App
installieren kannst. Bzgl. Deines Betriebssystems haben wir leider
bisher keine Erfahrungen ob bzw. wie unsere Apps darauf funktionieren.
Da unsere Apps für die offiziellen Versionen von Android und iOS
entwickelt wurden, können wir auch nicht für volle Funktionalität
garantieren. Auf den “fused provider” als Standortdienst greifen wir
nicht zurück.Es tut mir leid, dass ich Dir keine positivere Antwort schicken kann.Ich wünsche einen schönen Tag.Schöne Grüße

Jessica

outdooractive.com - Support

:flag_gb: In english and short:

We have this problem with Android 6.0. The app crashes, when the map is selected. Google knows the problem and is looking for a solution.
https://code.google.com/p/gmaps-api-issues/issues/detail?id=9071
We expect that google will fix the bug in the next update. Also this bug should be fixed with the next version of our app. Can you check if you can update your app? In regards to your operating system we do not know it and only guarantee for the function on official versions of Android and iOS. We do not use the fused provider as location provider. I am sorry that I can not give you a positive answer.

So it seems that the problem is not coming from the “fused provider”. On the other hand Roboe wrote that only apps which specifically check for the absence of the fused provider will probably work. This is not what they say.

Does the link they sent me tell anyone anything? Is there a chance, that with an update this problem might be solved (I heard google sends out monthly patches to Android providers)? I guess not, since FP Open OS is based on Android 5.1 and not 6.0. And there it should work (even though they did not write that specifically).

… and on our phones android 5 is installed. I bet that this Jessica has no clue what “fused provider” is.

Did you try to start the app with location set to “device only”?

1 Like

Ok. First, some clarifications:

  • FP Open OS is Android 5.1
  • Google Android monthly updates are security, only, BUT…
  • …their services (i.e. Google Mobile Services/Google Apps, which include Google Maps API) are updated on a rolling release base by themselves, separated from the system
  • The link provided describes an error found on Android 5.1 and Android 6.0 (both with Google Mobile Services), not only on the latter
  • Having an issue opened on Google Code doesn’t mean Google is aware of the supposed bug, and, as far as I’ve read, no Google staff has commented on it, neither
  • Picky one: only official version of Android available on the market are Nexus. I’m sure their market is not exclusively Nexus phones, :laughing: (but yes, definitely, their market is Android with GMS, not pure AOSP or near AOSP with microg, as in our case)
  • Another picky one: If the problem is Google’s… what does “Also this bug should be fixed witht the next version of our app. Can you check if you can update your app?” mean? :wink:

On the other hand, I’ve installed Outdooractive and checked the adb logcat output when crashing (same exact stack trace with device only, network location and high precission GPS settings):

E/AndroidRuntime(24582): FATAL EXCEPTION: main
E/AndroidRuntime(24582): Process: de.alpstein.alpregio.outdooractive, PID: 24582
E/AndroidRuntime(24582): java.lang.RuntimeException: Unable to resume activity {de.alpstein.alpregio.outdooractive/de.alpstein.activities.GMapActivity}: java.lang.IllegalArgumentException: provider doesn’t exist: fused
E/AndroidRuntime(24582): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2986)
E/AndroidRuntime(24582): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3017)
E/AndroidRuntime(24582): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)
E/AndroidRuntime(24582): at android.app.ActivityThread.access$800(ActivityThread.java:151)
E/AndroidRuntime(24582): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
E/AndroidRuntime(24582): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(24582): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(24582): at android.app.ActivityThread.main(ActivityThread.java:5254)
E/AndroidRuntime(24582): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(24582): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(24582): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime(24582): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
E/AndroidRuntime(24582): Caused by: java.lang.IllegalArgumentException: provider doesn’t exist: fused
(…)

Yes, the problem is the fused provider. And yes, they use it, directly or indirectly, knowing it or not. But it is not totally their fault, using that and it doesn’t working, being honest.

Conclusion: There’s no workaround for it yet, :frowning:

PD: sorry for the pickiness…

5 Likes

@Roboe
Thanks for the clear words and taking your time to describe the stuff in basic language for simple users like me. I highly appreciate it.

I will tell the support what you found out (basically send them the logcat), let’s see if they comment on it.

@Spielmops
Yes, I have tested “high accuracy” and “device only” with the same result -> :airplane: :boom:

1 Like

I got a new answer from support:

:flag_de: In German:

Hallo Max,nach Absprache mit unseren Entwicklern kann ich Dir folgendes berichten:
Dem Callstack nach sieht es so aus, als würde Google für das Google Maps
Android Framework nach dem fused location provider fragen. Der Code,
der das macht, stammt nicht von uns.
Das Problem ist also eher das Zusammenspiel zwischen der Google Maps Android API v2 und dem Fairphone-Bertriebssystem.
Das heißt wir haben hier leider keine Möglichkeit das Problem zu beheben.

Es tut mir leid, dass ich Dir keine positivere Nachricht senden kann.Einen schönen Tag.Schöne Grüße

Jessica

outdooractive.com - Support

:flag_gb: In English:

Hello Max. After talking with our developers, I can tell you the following:
According to the callstack it looks like Google is asking for the fused provider for the Google Maps Android Framework. The code that does this, is not from us.
So the problem is the interaction between Google Maps Android API v2 and the fairphone operating system.
This means we have no solution for this.
I am sorry that I can not give you a positive reply. Have a good day. Regards,
Jessica

So I guess, this supports what Roboe wrote. I do not understand yet though,if it is a problem of proprietary google code, that app developers simply integrate, or if it is a problem of the fairphone OS.

Oooook, I understand now. Let me explain:

  • Apps which use Google Maps use the official Google Maps library.
  • Google Maps library (a proprietary “piece of code” coders use for build apps) use the fused provider without checking if it exists.
  • This has sense, because a production-ready ROM built and distributed with Google Mobile Services has to pass a set of tests called CTS; otherwise, Google doesn’t grant the license required to the manufacturer. I’m sure the CTS checks the integration of Google Location Services, including network location and fused location.
  • Fairphone OS GMS pass the CTS, but Fairphone Open OS doesn’t.
  • Other apps which only access to the location without Google Maps library have to do it manually, which means, in order:
    1. Check if location is enabled. Request enabling it if isn’t.
    2. Check the available providers (if fused is not available, they continue with gps or network provider —this avoid the error).
    3. Request a location with an specific provider.

Point 3 explains why Google Play is crashing too with FP Open OS + GApps flashed.

Other working apps which meet point 4 criteria are: Transportr (use OpenStreetMap), Maps.me (use OSM), Pokémon GO (definitely doesn’t use Google Maps library as is, because map is a customized 3D view).

This supports the diagnose that Fairphone Open OS has a bug with the fused location provider implementation.

1 Like

Very nice explanation. I’m just not sure I would call this a bug.
It’s to expect that some apps that require google services are not going to work on a OS that comes without google services. Even if you can install them via a 3rd party script.

Well, the point is that it is not a problem with microG. The fused provider is not working, when it should. There’s no point in apply the patches for UnifiedNLP and not having a fused provider for location. Plus, users that want to flash a minimal version of GApps like OpenGapps are affected, too.

You have a point, though, talking about Google things, but apps requiring Google Mobile Services (e.g. Citymapper) work fine on my Nexus 4 with CyanogenMod and microG, but not on my Fairphone 2 with microG. And there’s the not-common-but-possible case of an app which doesn’t require any Google library and crash because it requires the fused provider, no matter what system for location you have installed.

PD: Thank you for moving it to the GPS thread.

2 Likes

So now omands working after waiting 5-10 min.
But if i use father.io or Pokémon go both cant find my Position and phone crashes.
So i habe to reboot with Holding powerbutton for 10 sec. :frowning:

i have the same problem :frowning: i hope they fix it soon, because i wanna be the very best too

I already read this popular thread but couldn’t find a fix.

Problems:

  • If I enable GPS the PlayStore crashes two times (well, I can deal with that).
    The location via Wifi and Network works; it is only the GPS which doesn’t work properly.
  • If I enable the GPS it needs approximately 10 minutes to find my location.
  • If I lock my screen or switch to a not-using-GPS-app the search for my location (via GPS) is abandoned until I open the app which needs GPS.

Things I have done/tried so far:

  • Changed the NTP-Server via FasterGPS to Germany (I am living in Germany; server is: de.pool.ntp.org).
  • Changed INTERMEDIATE_POS to 1
  • Tried different apps for getting the location (Google Maps, Osmand, Pokemon Go, Ingress …)
  • Installed GPS Status and SatStat, which show that my phone quickly detects a lot of satellites (see picture). (Often I have 15 to 18 of 20 to 25)

According to the app the blue satellites show the ones which can be used to get your location, the red ones show the ones who can’t be used.

I would be glad if someone has another idea what to test or to change :slight_smile: