Show HN: Quickly connect to WiFi by scanning text, no typing needed (github.com)
I travel and work remotely a lot. Every new place—hotels, cafes, coworking spaces—means dealing with a new WiFi network. Sometimes there's a QR code, which is convenient, but usually, it's a hassle: manually finding the right SSID (especially frustrating when hotels have one SSID per room), then typing long, error-prone passwords.
To simplify this, I made a small Android app called Wify. It uses your phone's camera to capture WiFi details (network name and password) from printed text, then generates a QR code right on your screen. You can instantly connect using Google Circle to Search or Google Lens. You can also import an image from your gallery instead of using the camera.
Currently, it's Android-only since I daily-drive a Pixel 7, and WiFi APIs differ significantly between Android and iOS. Play Store link: https://play.google.com/store/apps/details?id=com.yilinjuang...
I'd appreciate your feedback or suggestions!
49 comments
[ 2.5 ms ] story [ 99.8 ms ] threadAlso if you are already familiar with Android this app should take hours not weeks.
Edit - ah is the point taking a photo of credentials and joining from that?
Work gave me an iPhone recently and I was shocked the wifi initial connection screen had no option to scan a QR code. It took Android way too long to get this as well.
But on top of that, even when the option is there it's so limited - i.e. it gets presented as "must be a wifi QR code" without the option to just fill a text box from a plain text one (although on reflection I'm now wondering why that's not just a global UX option on phones).
QR codes are a convenient way to make that happen.
There's also a nmcli connection modify option for the linux laptop.
Lucky me
They could probably use this API: https://developer.android.com/develop/connectivity/wifi/wifi... or https://developer.android.com/reference/android/provider/Set... to skip the step with Google Lens. Showing the QR-Code is still an interesting functionaliy, for the use case if they had a second phone they wanted to connect that doesn't have this app.
[1] https://github.com/yilinjuang/wify/commit/7e63f2a9e6759847b4...
[1] https://developer.android.com/develop/connectivity/wifi/wifi...
[2] https://developer.android.com/reference/android/provider/Set...
[1] https://github.com/yilinjuang/wify/commit/7e63f2a9e6759847b4...
These QR codes usually work with your device's default camera app -- point at QR code and get prompted to join the network.
Sure, the excuse here might be that the generated QR code can be used to connect other devices as well, but if that was the reason, it would have been mentioned i guess. It seems like the QR code is only generated & displayed to be read from screen... It seems to me– a judgmental moron– almost as if chatgpt came up with this...
Sorry if this sounds harsh, most likely i am wrong and don't get something here. And usually i wouldn't have commented because my comment doesn't bring something positive to the table... But i really so much don't get it here, i had to comment in the hope of being enlightened why this is smart and not the opposite...
But either way: if it solves an issue for you the way you want it to: perfect. Congratulations on finishing an app as you imagined it. That is really great, regardless of opinions like mine.
> You can instantly connect using Google Circle to Search or Google Lens.
Is there something special about the Google integrations that other apps can't achieve (I'm not an Android developer)?
Exactly. Why not use the API directly? Why encode a string into an image for the sole purpose of displaying that image to then basically do a screenshot to then read from the screen, to run an algorithm on that to detect & decode to get the string you already had after doing the OCR on the wifi credentials.
Btw: i didn't even open the link. My comment was based solely on this post. Now i see that it's an expo / react project... so the amount of wasteful energy spent is even higher.
I have looked at the code. This here stands out to me:
>>> if (Platform.OS === "android") { // On Android, we use system built-in WiFi connection dialog via qr code return false; } else if (Platform.OS === "ios") { // On iOS, we need to use a different method await WiFiManager.connectToProtectedSSIDPrefix( ssid, password, !isWPA // iOS only ); <<<
Aside from the fact that the comments indeed look very llm-esque to me, the way they're phrased also implies that the ios way of directly connecting is the "different" method. Like that one is the workaround of both approaches– and the wasteful way is the desired one– for no apparent reason.
You’re right about the LLM smell. I’ve been using cursor composer and find it very handy at times!
I added more explanation here https://news.ycombinator.com/item?id=43384670
Generating and scanning a QR code is a workaround to minimize steps—avoiding the need to manually select the network from a long list and type the password.
Android does provide a WiFi suggestion API [1], but it has several limitations and doesn’t behave quite as expected. I initially tried using that, but eventually settled on the QR code solution.
Hope this clarifies things!
[1] https://developer.android.com/develop/connectivity/wifi/wifi...
I was sure, a third party QR code scanner should be able to read wifi qr codes and trigger a connection prompt as well. But apparently the it can't. This is dumb, but then you're app is not.
Hope i didn't bring too much negativity.
Can you expand on this? I read the linked doc, and it looked like a separate API should be used to used to "persist a network connection" (my words), but as someone with no Android dev experience there don't seem to be any obvious limitations.
You did mention in another reply that only certain root apps can do [what we expect]. Is there a link where I can learn more about that?
Actually in the same comment I replied to, but there doesn't seem to be a way to edit posts in my mobile client.