Use of OCR to automatically connect to a WiFi AP, from the SSID and Key information on the underside of a typical WiFi router.
Java
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
gradle/wrapper
quickWifi
readmeimg
.gitignore
QuickWifi.iml
QuickWifi2.iml
README.md
build.gradle
gradlew
gradlew.bat
settings.gradle

README.md

Quick-Wifi

TODO

  • Implement asset extraction and make extarction threaded.
  • Improve UI
  • Camera flash and picture mode options
  • Intro screen with app information.
  • WiFi connection status feedback
  • Bleeding edge and versioned apk download (I won't be putting this app on the Play Store)

Usage/Download

You have the following options;

Requirements

  • Android studio and gradle v1.10+
  • Android v4.0+
  • Android device with a camera. Better quality camera will give more reliable OCR results.
  • WiFi AP, with SSID and WPA password information printed on the back.
  • Alternately for more reliable results, the SSID and WPA key printed on a peice of paper in a larger font.

Aim

Novelty application of OCR (Optical Character Recognition)

Idea

Use of OCR to automatically connect to a WiFi AP after taking a photo of the underside of the router (that contains SSID and Key information).

The app runs the Tesseract OCR system locally from compiled arm libraries for android: Android Tesseract

Alt text

How it works

  • Quick WiFi uses the android camera library to create it's own camera instance
  • The user takes a photo
  • The user crops the photo to try and include just the SSID and Key text, using the android-crop library, in order to improve the accuracy of OCR reading (removal of extraneuos text)
  • Quick WiFi then calls Tesseract to extract the text from the cropped image
  • Then the SSID and the Key is extracted from the text
  • Quick WiFi calculates the hamming distance of the SSID against the SSID of each currently available WiFi connection (This allows space for error in the SSID but not in the key)
  • It then connects the network with the shortest hamming distance using the aquired key.

Progress

Application works well under controlled conditions (good lighting and a printout of the SSID and Key). Back of the router test produces varied results mainly due to the following accuracy depreciation problem: Tesseract FAQ

Screenshots of Progress

Capturing an image... Alt text Cropping image.. Alt text Creating a configured WiFi connection using SSID and Key and adding it to the set of configured networks. Android will then handle connecting to it on its own. Alt text