markqvist / Sideband

LXMF client for Android, Linux and macOS allowing you to communicate with people or LXMF-compatible systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, or anything else Reticulum supports.
Other
391 stars 27 forks source link

No GPS location provided on certain Samsung devices #58

Open michael23505 opened 2 months ago

michael23505 commented 2 months ago

Read the Contribution Guidelines Before creating a bug report on this issue tracker, you must read the Contribution Guidelines. Issues that do not follow the contribution guidelines will be deleted without comment.

Describe the Bug sideband on android has been unable to gather location data from 3 different android phones, but fixed position and other telemetry work as expected.

To Reproduce attempt to acquire and send or receive location telemetry of an android phone's gps using the sideband app.

Expected Behavior location data from a phone's gps should be gathered by the app with telemetry and location settings turned on. this data should then be shared with other users, and displayed on the built in map as expected.

Logs & Screenshots Please include any relevant log output. If applicable, also add screenshots to help explain your problem.

System Information samsung galaxy a3, a11, and a52, android version 14 sideband app versions 0.9.5 beta and 0.9.7 beta

Additional context Add any other context about the problem here.

markqvist commented 2 months ago

Have you set permission location to "Allow all the time" for Sideband in Android permissions settings? For telemetry, location is collected by the background service, which needs this permission to actually get the GPS location.

brothercorvo commented 2 months ago

I can confirm this bug. this is not a permission issue: for some reason the position is provided when the device in NOT moving. when it's moving the position returns as a void. We debugged this in Reticulum-Telemetry-Hub several times

markqvist commented 2 months ago

I can confirm this bug. this is not a permission issue: for some reason the position is provided when the device in NOT moving. when it's moving the position returns as a void. We debugged this in Reticulum-Telemetry-Hub several times

As far as I can read, OP is referring to setting a fixed position in the telemetry settings, not anything about non-stationary devices "returning a void".

Please don't conclude that "this is not a permission issue" on behalf of someone else; that is just hijacking OPs thread.

If you have further information about the issue you're describing, and ideally adb logcat output with debug log turned on, please open a separate issue. I'd be very interested to look into it, because I have not seen anything like that across many different devices, both moving and stationary.

michael23505 commented 2 months ago

didn't mean to cause confusion. it's my first post anywhere, and i've only been using sideband for a couple days. i just wanted to see if anyone else had the gps problem or if it was being worked on. i really like sideband and what it is becoming capable of, and i'd love to see it fully functional soon.

markqvist commented 2 months ago

No worries @michael23505, in the reply I above I was specifically answering brothercorvo. Still waiting for your reply on this:

Have you set permission location to "Allow all the time" for Sideband in Android permissions settings? For telemetry, location is collected by the background service, which needs this permission to actually get the GPS location.

Sideband gets the GPS information via a background service on Android, so that it can update telemetry data even while the app is in the background. This means that you need to allow it to "Access location anytime" though, and since it's not possible on Android to ask a user for this permission directly, you must manually go into settings on your Android device and enable this permission. It's a bit contrived, but there's currently no other way to effectively get location data on Android in a reliable way that will work for telemetry purposes.

Can you confirm whether or not this permission has been granted, and whether or not it still does not work when it has?

michael23505 commented 2 months ago

location permission is set to allow all the time on each device. still, none are working.

markqvist commented 2 months ago

Thanks.

markqvist commented 2 months ago

Also, what Android versions are these phones running. Are all of them on Android 14?

michael23505 commented 2 months ago

a samsung android phone with sideband sending to a windows desktop with the python version of sideband over a local wifi, and tcp to the amsterdam test server. windows sideband set as collector. i enabled battery telemetry and it works fine. just no gps no matter what i try. the phone location shows up on the phone's sideband map. but no actual coordinates are visible in telemetry or sent to any other device. samsung galaxy a52 with android 14, galaxy a03 with android 13, and galaxy a11 with android 13.

markqvist commented 2 months ago

Thanks. If I provide you with a debug build, can you send me log output of adb logcat | grep "python\|sidebandservice"?

michael23505 commented 2 months ago

sure.

markqvist commented 2 months ago

Nice, here's a debug build with extra logging output:

https://github.com/markqvist/Sideband/releases/download/0.9.6/sideband-0.9.7-debug.apk

Please make sure to also allow a minute or two for the service to actually acquire a location update from the OS, as the interval at which this is initially sent can vary quite a bit. Once you see location in "Own Telemetry" and on the map, it should be included in any outgoing telemetry, as long as "Send Telemetry" is enabled in the conversation settings, of course.

michael23505 commented 2 months ago

using debug build on one phone. location still not working. how do i get to the log?

markqvist commented 2 months ago

Install adb on a computer, enable USB debugging on the phone, run:

adb logcat | grep "python\|sidebandservice" (or similar)

michael23505 commented 2 months ago

adb won't install. it keeps stopping at failed building wheel for m2crypto.

michael23505 commented 1 month ago

I installed an app on one of my phones that passes fake gps data to sideband and all telemetry worked as expected. then i switched the gps faking app to use my phone's internal gps and it no longer worked. my only workaround at the moment seems to be to use an external usb gps. as soon as i get one i will test, but it might take a week or more to get one.