"Android wifi social networking"
Project Goal
We will use a Google Android phone (the HTC G1) to implement a scheme for sharing local wifi signal strength among other Android users.
A user's phone will publish the signal strength of wifi networks in the area. Other Android users will be able to view this information if a better wifi location is desired. Wifi data will be presented on a Google Map, to indicate other users' wifi status.
Milestones
Task |
Assigned |
Complete |
Deadline |
Install Eclipse+SDK on Linux | Phil | Yes | April 1 |
Install Eclipse+SDK on Windows | Sushmita | Yes | April 1 |
Research WifiManager and obtain wifi data, displayed to screen | Sushmita | Yes | April 1 |
Evaluate WAMF and Google Latitude | Phil | Yes | April 1 |
Create wifi data container classes and serialize locally/remotely | Phil | Yes | April 8 |
Display name, location, and wifi data via Google Maps overlay | Sushmita | Yes | April 8 |
Phase 1: Store wifi data + geographical data in a local data structure (on phone) | Phil | Yes | April 8 |
Phase 1: Display data as Google Maps overlay | Sushmita | Yes | April 8 |
Phase 2: Post wifi data structure to server | Phil | Yes | April 15 |
Phase 2: Retrieve wifi data structure from server and display locally | Sushmita | Yes | April 15 |
Prepare presentation & final report | Phil+Sushmita | Yes | April 21 |
Implementation Notes/Ideas
- Data container classes
- WifiNetwork: SSID, signal level
- WifiData: latitude, longitude, WifiNetwork's
- WifiUserHistory: user name, WifiData's
- The Manifest file must contain permissions for accessing various functions
- e.g. uses-permission android:name="android.permission.INTERNET"
- The G1 does not work well with USB hubs - use a USB port that is connected directly to the motherboard of the computer
- The DatagramSocket is somewhat picky about binding to ports. Choose a port in the 5000 range.
Future Work
- UI improvements
- Menus
- Display more than one wifi network
- Increased flexibility
- Specify user name
- Authenticate client/server session
- Specify server URL
- Save server data to disk or SQL
- GPS
- Performance disappointing - most likely due to inadequate hardware
- If cellular network available, Assisted GPS would probably perform much better
- Location Listener can automatically update the phone's position