As described in Sect. 1, the deployment of Wi-Fi infrastructure is essentially ubiquitous nowadays. By taking advantage of the Wi-Fi infrastructure, indoor locationing is handily achievable by sensing the existence of some specific Wi-Fi APs’ wireless signals. That is, sensing a specific Wi-Fi AP’s wireless signal conceptually means that the user is in vicinity of the location at which the Wi-Fi AP is deployed. Specifically, every AP will broadcast beacon frames periodically, which contain the MAC address of its Wi-Fi interface and its service set identification.
Accordingly, a Wi-Fi client device can scan for the beacon frames to acquire the MAC address of the AP in vicinity and then associate the discovered MAC address with a personal-meaningful location. By personal-meaningful locations, we mean that the locations to be saved in the location database can be named according to users’ own will. For example, one can name a location ‘‘My Office’’, which needs not be meaningful to other people. Also, we would like emphasize that a Wi-Fi client device can do Wi-Fi scanning even when APs are running the Wi-Fi Protected Access (WPA) security protocols, because we only need to receive the beacon frames rather than establish a Wi-Fi connection with the WPA-enabled AP. It is possible that a Wi-Fi client device can discover a number of APs simultaneously when scanning for Wi-Fi connections. This is very common especially in urban areas. Therefore, in our implementation, we allow multiple APs to be associated with one location, to increase the success rate of indoor locationing. In addition, in our application, the indoor personal-meaningful locations should be pre-visited by the user before they are used in the reminders. More precisely, the user should be physically located at the location, scan the Wi-Fi APs, and then save the location into the application database. With this prerequisite setting, the users may create reminders and then associate them with the pre-established locations.