A s a computing platform, mobile phones are both pervasive and personal. They're almost always on and tend to have an intimate relationship with their owners, who store private information on them and often personalize their appearance or ring tones, for example. This personal nature suggests that mobile phones are well suited for context-aware computing. On one hand, mobile phones follow the user and have clues about the current situation. On the other, their various usage contexts will likely benefit from context awareness. Smart phones are a particularly tempting platform for building context-aware applications because they're programmable and often use wellknown operating systems. There's a gap, however, between the operating systems' functionality and the features that application developers need. A smart phone knows, for example, how to connect to a Bluetooth device-such as a Bluetoothenabled Global Positioning System receiver-but applications need the actual GPS coordinates. To fill this gap, we've designed and developed ContextPhone, a software platform consisting of four interconnected modules provided as a set of open source C++ libraries and source code components. ContextPhone runs on off-the-shelf mobile phones using Symbian OS (www.symbian. com) and the Nokia Series 60 Smartphone platform (www.series60.com). To develop ContextPhone, we followed a human-centered research strategy 1 that included field studies of application use. As a result, our platform offers several useful capabilities and functions that existing platforms don't. The current ContextPhone version is the result of several development iterations and repeated evaluations of real-world use. Our development experiences led to several design goals. The first is to provide context as a resource. The platform represents the user's machine-sensed context in a way that humans can understand and communicates it to the user's environment when appropriate. The context thus becomes a resource for social interaction, not just input to machine adaptation. Humans can thus construct new meanings from the contextual information. 2 The second is to incorporate existing applications. Most previous work, including our own, has implemented custom-built hardware systems or isolated applications. To accommodate the deeply intertwined nature of human mobility practices, ContextPhone interfaces and integrates with existing Smartphone applications, particularly messaging and calling functions. The third is to offer fast interaction and unobtrusiveness. In mobility, cognitive-interaction resources are seriously fragmented and interrupContextPhone was developed using an iterative, human-centered design strategy. It thus helps developers more easily create applications that integrate into both existing technologies and users' everyday lives. 3 The platform must therefore enable fast interaction when needed and otherwise run in the background without intruding on other applications' use. The fourth is to ensure robustness. The platform should automatically recover from lost power or connectivity and from internal logic and system component failures without user correction. All significant data should be automatically saved to nonvolatile memory. These features build trust and prevent negative social consequences. The fifth is to let users control seams. Battery life, technical-platform heterogeneity, and network connectivity gaps create seams in interaction. 4 Empowering users to compensate for and control these seams is desirable in many applications. The sixth is to emphasize timeliness. Response latency is crucial for applications that support turn-taking-based communications. Social events are often significant only at a particular moment. Several applications and terminals might require quick access to socially significant context information. The final goal is to enable rapid development. Developers should be able to easily add new context data sources, sensors, and sinks, and build new applications without rebuilding the entire system. At best, data types and components should be runtime extensible; at least, developers should have a unified structure for adding new types and components at compile time. These features support rapid, iterative development that involves users in every stage of design. These goals are generally applicable in helping developers create applications that are useful to people in everyday life, as opposed to building stand-alone tools for limited settings. 5
ContextPhone REF is a software platform designed to sense and record contextual information, and it runs on the Symbian OS of Nokia series 60 smartphones.
ContextPhone: a prototyping platform for context-aware mobile applications
IEEE Pervasive Computing
IEEE Pervasive Computing
Computer Science