mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-02-05 21:33:01 -05:00
38b4bc255cc3a110a9e6e0dbeacc0b6815656629
So I'm trying to get an old version of bluetooth on Sony phones to work
In the process I realized I've always been doing something dumb which
bastically works fine, but is an ugly hack I also did to support old
devices. Due to an accident of history there were two different layers
of the app which were trying to manage bluetooth connections, which was
dumb. Always only one layer of an app should worry about such things.
/**
* Should we automatically try to reconnect when we lose our connection?
*
* Originally this was true, but over time (now that clients are smarter and need to build
* up more state) I see this was a mistake. Now if the connection drops we just call
* the lostConnection callback and the client of this API is responsible for reconnecting.
* This also prevents nasty races when sometimes both the upperlayer and this layer decide to reconnect
* simultaneously.
*/
Meshtastic-Android
This is a tool for using Android with open-source mesh radios. For more information see our webpage: meshtastic.org. If you are looking for the the device side code, see here.
This project is currently early-alpha, if you have questions or feedback please Join our discussion forum. We would love to hear from you.
The production version of our application is here:
But if you want the beta-test app now, we'd love to have your help testing. Three steps to opt-in to the test:
- Join this Google group with the account you use in Google Play. Optional - if you just want 'beta builds' not bleeding edge alpha test builds skip to the next step.
- Go to this URL to opt-in to the alpha/beta test.
- If you encounter any problems or have questions, post in the forumt and we'll help.
Build instructions
If you would like to develop this application we'd love your help! These build instructions are brief and should be improved, please send a PR if you can.
- Use Android Studio 4.0 RC 1 to build/debug (other versions might work but no promises)
- Use "git submodule update --init --recursive" to pull in the various submodules we depend on
- There are a few config files which you'll need to copy from templates included in the project. Run the following commands to do so:
rm ./app/google-services.json
cp ./app/google-services-example.json ./app/google-services.json
rm ./app/src/main/res/values/mapbox-token.xml
cp ./app/special/mapbox-token.xml ./app/src/main/res/values/
rm ./app/src/main/res/values/curfirmwareversion.xml
cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/
- Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone or the emulator. Note: The emulators don't support bluetooth, so some features can not be used in that environment.
Analytics setup
- analytics are included but can be disabled by the user on the settings screen
- on dev devices "adb shell setprop debug.firebase.analytics.app com.geeksville.mesh" adb shell setprop log.tag.FirebaseCrashlytics DEBUG
for verbose logging:
adb shell setprop log.tag.FA VERBOSE
Credits
This project is the work of volunteers:
- @artemisoftnian: Contributed Spanish translations.
- @CycloMies: Contributed Swedish, Finnish and German translations.
- @eriktheV-king: Contributed Dutch and French translations.
- @Lgoix: Contributed tooltip for radio mode
- @Eugene: Contributed Russian translation.
- @Jinx17: Contributed Slovenian translation.
- @Konradrundfunk: Contributed German fixes.
- @Mango-sauce: Contributed Chinese translation.
- @NEKLAN: Contributed Japanese translation.
- @Ohcdh: Contributed Irish and Italian translations.
- @Slavino: Contributed Slovak translation.
- @Zone: Contributed Turkish translation.
Copyright 2019, Geeksville Industries, LLC. GPL V3 license
Languages
Kotlin
99.2%
Java
0.6%
AIDL
0.2%
