Flutter Geolocator.isLocationServiceEnabled() isn't working as intended - flutter

I'm trying to access a location in Flutter via the Geolocator package.
This works well but the location permission check has some sort of bug.
I check if the location service is enabled. Once it's accessed i check the users permission and then return location. This works quite as intended, but there is a problem with the first step.
I use
Geolocator.isLocationServiceEnabled()
to check if the location service is enabled. Unfortunately, this function just returns in some cases which leads to the whole function not returning, even though the location service is activated.
I already searched in different forums for answers and it seems to be a known problem although i didn't find a solution yet.
Attemps i tried to get access to GPS but failed:
turning GPS off and on again
closing and opening the app again
inserted
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
in AndroidManifest
hot restart in IDE
I could just access the location if i re-run debugging, but not each time...
Does anybody have a clue how to get this built-in function to work as intended?
Thanks in advance!

I found a workaround.
I used the permission_handler package and replaced
Geolocator.isLocationServiceEnabled()
with
final hasPermission = await Permission.locationWhenInUse.serviceStatus.isEnabled;

Related

Maneuver issues in Turn By Turn Navigation with HERE maps in Flutter

Thanks in advance.
We have to use HERE map's Turn by turn navigation feature in one of our Flutter application, we have added billing in the developer account and have created the necessary keys.
When we try HERE map examples they have provided, we get everything except maneuver instructions that shows the user when to turn right/left/go straight for some distance etc.
I'm new to this and I have no idea how to get this, we never get events on the listener and it only shows updating there, am I missing something ?
this is how it looks right now, Updating...
I think we should be getting the progress here, but we are not getting it here...
_visualNavigator.routeProgressListener = Navigation.RouteProgressListener((routeProgress) { }
Please look into the provided example app. It shows here how to get the maneuver actions.
Your screenshot shows a different app, so make sure everything works with the example app, at first. The app offers to run a simulation mode. This should work. If you run the example app with real GPS updates, you may need to go outside and move to get location updates. This should also work.
If this still does not work, it could either mean that your device has an issue with getting GPS locations. Some iPads, for example, lack support. Or that you have disabled getting location updates. You can cross-check this when trying the positioning_app example from the same repository that shows how to get location updates.
A last point may be to clarify what events you get and what you miss: There are multiple event listeners providing real-time information during guidance - if you have only an issue with maneuvers, then most likely you can solve your issue by following strictly the code of the example app.
Note that previous HERE SDK versions, prior to HERE SDK 4.13.0, only provided empty maneuver instruction texts during guidance when they have been taken from the route instance. Make sure to take this information from the VisualNavigator instead.

Suddenly receiving firebase database error when logging in through app: " Evaluation error: NSURLErrorDomain: -1003"

I am currently working on an IOS app built through Swift on Xcode. Firebase packages are installed using Cocoapods, and all pods are updated. Additionally, I double-checked that the Plist and Google-Service Info files are correct.
This is the full error line I receive when logging into the app and trying to retrieve user information from the database:
nw_proxy_resolver_create_parsed_array [C3.1.1 proxy pac] Evaluation
error: NSURLErrorDomain: -1003
I am unable to figure out how to resolve this issue as there were no changes in my code and it was working beforehand perfectly.
I can provide code snippets if needed but since the app was working prior, I am assuming this isn't related to my code.
The only time I was able to solve this issue temporarily was to reset the package caches through XCode, allowing me to view posts and other content pulled from the firebase backend. Unfortunately, after I restarted the app, this solution did not work anymore, and the same error from above popped up. Since resetting the package caches worked initially, I am assuming there is no direct correlation between the error and my source code.
Does anyone have any idea as to ways I can solve this issue? It has prevented me from working on my app for several days now. Thanks for any help!
Update: After looking over my code one more time, I found that there was a missing dot in a line of code, leading to my IOS app not running. This did NOT solve the error of nw_proxy_resolver_create_parsed_array [C3.1.1 proxy pac] Evaluation error: NSURLErrorDomain: -1003, but since the app is working successfully, my problem is solved.

Flutter java.io.IOException: FIS_AUTH_ERROR

I'm getting "FIS_AUTH_ERROR" error when using the release build but in debug build not getting any issue, it's working completely in last week but today I'm getting this error. I have search lot's of think and getting solution but it's not be work in my end. below I'm mention the which solution I have try.
1 First solution.
2 Second solution.
I have try both above solution but it's not working my end.
Error code line:
var _deviceToken = await FirebaseMessaging.instance.getToken();
Thank in Advance.
After 3 day's I have found the solution. I have take SHA-1 from Google developer console(App integrity) and add in Google cloud console project and also set inside Firebase project and updated Google-service.json file use.
I had the same issue not able to generate fcm device token in android but it was working fine in ios.
I checked web api key in the firebase console it was different than what I had in google-servies.json so i just replace json file api key with firebase.
And it worked.

Firestore how to set serverTimestamp behaviour in Flutter?

I am trying to make my app save local changes (e.g. saving notes) to firestore db while it is offline. When I use DateTime.now() for timeCreated, everything (most of job) works, but obviously, it is not correct time. I found solution with using FieldValue.serverTimestamp() to have correct time, but once I try to use it while app is offline, I can't get a value of previous timeCreated fields. Furthermore, I found out about DocumentSnapshot.ServerTimestampBehavior in firebase docs, and now I don't have clue how to use it or is it even available in flutter mobile apps. Link for Android: Android docs.
EDIT
I already gave up from using serverTimestamp, but I gave it another shot and successfully solved it. The problem was that I used hasPendingWriteson whole query, instead on single document which is added (updated) offline. In this article everything is described link. Still, I didn't find solution for my question.

Could not locate login item in the caller's bundle error when using SMLoginItemSetEnabled

I'm trying to get my swift Mac app to launch at login using the method described in this page: https://theswiftdev.com/how-to-launch-a-macos-app-at-login/
However, I keep getting the following errors as soon as I call SMLoginItemSetEnabled:
Could not locate login item com.domain.LauncherApplication in the caller's bundle
Could not enable login item: com.domain.LauncherApplication: 3: No such process
I checked that the launcher app ID is correct multiple times, I tried changing it and changing its version number. I even tried cleaning the project and moving the base app to /Applications but I always get these error messages.
Any idea what the problem might be? (Notice the solution must not require me to disable App Sandboxing)
OK, I found the problem but it took a long time since it was so sneaky: In the Copy File Build Phase section I entered "Contents/Library/LoginItem" as the subpath instead of "Contents/Library/LoginItems" (notice the 's' in the end - can't believe I missed it). So thank you #vadian! You were absolutely right.