ab306b1352
Pairing some devices requires a PIN to be entered. E.g. the flow is: confirm you'd like to pair, pass off to Android which prompts for a PIN to pair with (typically shows up on the non-phone device's screen or is hard coded in the manual), then return back to the app. When this pairing request screen pops up, it takes focus. This invokes onPause and onStop in the DiscoveryActivity, which removes the BlueTooth broadcast receivers. Returning focus (after successful pairing), there's nothing to listen to the event. Practically speaking, GadgetBridge last saw the device as BOND_BONDING, so it's out of sync. If queried, the device is BOND_BONDED, so it's good to move on to the next step. Many existing pairing activities (Lenovo, MiBand, Pebble, Watch9) have an implementation of onResume() to presumably tackle this issue, this adds it to `DiscoveryActivity` as well. Testing with some other supporting code, this allows a Garmin vivosport to appear in Gadgetbridge. |
||
---|---|---|
.github | ||
.idea/dictionaries | ||
.settings | ||
app | ||
config | ||
fastlane | ||
GBDaoGenerator | ||
gradle/wrapper | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
build.gradle | ||
CHANGELOG.md | ||
CONTRIBUTORS.rst | ||
FEATURES.md | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
LICENSE.artwork | ||
README.md | ||
settings.gradle |
Gadgetbridge is now hosted on codeberg.org
Gadgetbridge
Gadgetbridge is an Android (4.4+) application which will allow you to use your Pebble, Mi Band, Amazfit Bip and HPlus device (and more) without the vendor's closed source application and without the need to create an account and transmit any of your data to the vendor's servers.
Download
Supported Devices (WARNING: Some of them WIP and some of them without maintainer)
- Amazfit Bip Wiki
- Amazfit Bip Lite (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE) Wiki
- Amazfit Bip S (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE)
- Amazfit Bip U (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE)
- Amazfit Cor Wiki
- Amazfit Cor 2 Wiki
- Amazfit GTR (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE) Wiki
- Amazfit GTR 2(WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE) Wiki
- Amazfit GTS (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE) Wiki
- Amazfit GTS 2(WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE) Wiki
- Amazfit T-Rex (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE)
- Amazfit Verge Lite (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE)
- BFH-16
- Casio GB-5600B/GB-6900B/GB-X6900B
- Casio GBX-100
- Fossil Hybrid HR (WARNING: NEEDS FOSSIL APP WITH ACCOUNT ONCE AND COMPLICATED PROCEDURE) Wiki
- Fossil Q Hybrid
- HPlus Devices (e.g. ZeBand) Wiki
- iTag Wiki
- ID115
- Nut Mini 3, Nut 2 and possibly others Wiki
- JYou Y5
- Lefun
- Lenovo Watch 9
- Lenovo Watch X (Plus) Wiki
- Liveview
- Makibes HR3
- Mi Band, Mi Band 1A, Mi Band 1S Wiki
- Mi Band 2 Wiki
- Mi Band 3 Wiki
- Mi Band 4 (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE) Wiki
- Mi/Amazfit Band 5 (WARNING: NEEDS VENDOR APP WITH ACCOUNT ONCE) Wiki
- Mi Scale 2 (Currently only displays a toast after stepping on the scale)
- NO.1 F1
- Pebble, Pebble Steel, Pebble Time, Pebble Time Steel, Pebble Time Round Wiki
- Pebble 2 Wiki
- PimeTime (InfiniTime Firmware)
- Teclast H10, H30
- TLW64
- XWatch (Affordable Chinese Casio-like smartwatches)
- Vibratissimo (Experimental)
- ZeTime Wiki
Features
Please see FEATURES.md
Authors
Core Team (in order of first code contribution)
- Andreas Shimokawa
- Carsten Pfeiffer
- Daniele Gobbetti
Additional device support
- João Paulo Barraca (HPlus)
- Vitaly Svyastyn (NO.1 F1)
- Sami Alaoui (Teclast H30)
- "ladbsoft" (XWatch)
- Sebastian Kranz (ZeTime)
- Vadim Kaushan (ID115)
- "maxirnilian" (Lenovo Watch 9)
- "ksiwczynski", "mkusnierz", "mamutcho" (Lenovo Watch X Plus)
- Andreas Böhler (Casio)
- Jean-François Greffier (Mi Scale 2)
- Johannes Schmitt (BFH-16)
- Lukas Schwichtenberg (Makibes HR3)
- Daniel Dakhno (Fossil Q Hybrid, Fossil Hybrid HR)
- Gordon Williams (Bangle.js)
- Pavel Elagin (JYou Y5)
- Taavi Eomäe (iTag)
- Erik Bloß (TLW64)
- Yukai Li (Lefun)
Contribute
Contributions are welcome, be it feedback, bug reports, documentation, translation, research or code. Feel free to work on any of the open issues; just leave a comment that you're working on one to avoid duplicated work.
Translations can be contributed via https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/
Community
If you would like to get in touch with other Gadgetbridge users and developers outside of Codeberg, you can do so via:
- Matrix: #gadgetbridge:matrix.org
Do you have further questions or feedback?
Feel free to open an issue on our issue tracker, but please:
- do not use the issue tracker as a forum, do not ask for ETAs and read the issue conversation before posting
- use the search functionality to ensure that your question wasn't already answered. Don't forget to check the closed issues as well!
- remember that this is a community project, people are contributing in their free time because they like doing so: don't take the fun away! Be kind and constructive.
- Do not ask for help regarding your own projects, unless they are Gadgetbridge related
Having problems?
- Phone crashing during device discovery? Disable Privacy Guard (or similarly named functionality) during discovery.
- Open Gadgetbridge's settings and check the option to write log files
- Reproduce the problem you encountered
- Check the logfile at /sdcard/Android/data/nodomain.freeyourgadget.gadgetbridge/files/gadgetbridge.log
- File an issue at https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/new and possibly provide the logfile
Alternatively you may use the standard logcat functionality to access the log.