Offline Messaging Apps Using Bluetooth
Problem: My wife and I are going on a long plane journey and don't have seats next to each other. How can we communicate?
Constraints: The plane WiFi is ruinously expensive. The in-seat messaging service isn't private. We both have Android phones.
Preferences: Open Source. Secure. Easy to use.
Solution: Use Bluetooth messaging app Briar.
The Good
The app was pretty easy to set up. Enter a username and password. Grant it the permissions it needs. Then add a contact. Briar lets you send messages via the Internet or, if you're on the same WiFi network, directly to each other. There's an extra setting for Bluetooth which isn't turned on by default. So we switched off its Internet and WiFi access, enabled Bluetooth and...
It just worked.
We scanned each other's QR codes and, after a few seconds of automatic pairing, we were able to send messages. Text, emoji, pictures, all sent quickly over Bluetooth.
That was fine when we were sat next to each other on a sofa. It even worked across different floors of our house. But how would it fair in the slightly less forgiving radio environment of a transatlantic flight?
Again, it just worked. We were at 30,000 feet, in a metal tube filled with WiFi and Bluetooth signals - and screaming babies - and messages zapped back and forth without delay.
The Bad
Bluetooth, at its best, can do about 100 metres. BLE5 about 400m. That's good enough in a domestic setting. But in a crowded area with lots of watery-humans soaking up the 2.4GHz waves, it quickly diminishes. Similarly, in a crowded environment there are likely to be lots of radio signals interfering with your transmission.
So it works, but you need to be relatively close to each other.
If you go out of range of each other, it can take a while to reestablish the connection.
Animated GIFs didn't work. They sent, but were received as a JPG. No memes! Boooo! I've raised a bug on their issue tracker.
There are a bunch of things I didn't need - like forums and blog posts. There's no discovery in the app, so I couldn't find any to see how they work.
After one phone performed an OS update, the Bluetooth connection needed to be re-established. A bit of a faff, but not a show stopper.
The Ugly
Briar isn't the prettiest pig in the pen. I'd go so far as to say it is spartan. Apps like Berty look beautiful and have tried to make their app more conventional.
Because Briar doesn't use Google's push notification service, it requires an icon to stay in your notification area. This is a constraint of Android, but does make things look rather cluttered.
It is a little confusing how things work with accounts. I think it is tied to your phone, so if you change device you have to re-authorise with all your contacts. That might be a necessary privacy trade-off.
Final Thoughts
I am not skilled enough to audit all of Briar's privacy and security claims. Other people seem satisfied with them. I'm not planning on doing anything with the app which requires total secrecy against powerful malicious actors. I just wanted to exchange messages with my wife when we were in proximity but had no Internet connection.
On that level, Briar works. Direct point-to-point messaging is feasible with Bluetooth. And I think that's great!
@Edent I love solutions like this. One way to get network wifi I found was to use an old phone (in my case one running Ubuntu Touch, but this works on any platform) sharing the mobile over wifi via "hotspot". Even without the mobile connection, all devices are on the wifi, and can see eachother for reliable connectivity. Don't even need a SIM in the wifi access point phone. Worked well for us playing silly games in a pub.
@Edent Further to this, have you looked into Delta Chat? It creates a WhatsApp like interface but uses your email as the backend messaging system. It's really simple and clever. A raspberry Pi (or old phone, as per previous post) with an SMTP/IMAP server for local users might be enough to implement it.
@Edent We did the same thing in school with a wifi hotspot. Even went so far to put an ESP32 in a 3D printes case to use it as a local wifi router.
@Edent there is also @manyver_se for this situation.
I'm guessing there's no chance you've seen anything that can do that between iphones and Android? Given you can generally send files between them that way I suspect enough of the bits being in place to do basic messaging won't work too 🙄 Good to see it on F-Droid though
Tbh says:
I see you compared Briar with Berty, why did you prefer that one?
@edent says:
I couldn't get Berty to work properly. Also, the UI has several problems which I reported, but still haven't been fixed.
More comments on Mastodon.