1

Context-Aware Mobile Computing

Amanda Draheim

Department of Computer Science

University of Wisconsin – Platteville

Platteville, WI 53818

Abstract

Context-aware mobile computing refers to mobile computing which is able to adapt according to the contextual information it has gathered. This contextual information includes data such as the time of day, resources near the device, the user’s actions and location of the device. Since this technology is relatively new, it presents many issues to researchers and developers. The rapid evolution of context-aware devices has allowed users to come into contact with this innovative technology. As context-aware devices become more prevalent, problems associated with them become prevalent as well. These issues can be minimized if appropriate guidelines are followed. Guidelines such as these ensure that the device is user-friendly and efficient. Although there are a few problems related to the area of context-aware mobile computing, this area also provides a multitude of opportunities. The future of context-aware devices is promising and will undoubtedly change the way technology shapes the world.

Introduction

During the last 15 years the world of mobile computing has exploded. Mobile phones made their appearance several decades ago, but it wasn’t until recently that they became readily available and practical to the everyday user. In 2012, mobile data traffic was about twelve times the traffic of the entire internet. In fact, the world of mobile devices is growing so quickly that, by the end of 2013, Cisco predicts the number of mobile devices will outnumber the number of people on earth. [2]

This uninhibited growth has led the area of mobile computing to thrive. Mobile devices are not only found in phones. Mp3-players, tablets, and laptops along with almost any object can be turned into a mobile device. This technology is found increasingly more and more around us. As it became more popular, users wanted more from the technology. These mobile devices become context-aware as sensors were added to gather data from the surrounding environment. Cars, rooms and phones now come equipped with various sensors to make life both easier and safer for the person using the device.

In this paper, the term context awareness will be defined and a brief history of the term will be discussed. Examples of context aware devices and applications will be listed along with aexplanation of how the sensors in a context aware device are able to collect and react to data. Various difficulties that developers face, solutions to these problems, guidelines for creating user-friendly applications,and future of context-aware devices will also be detailed.

Definition

Defining Context

In order to fully define the phrase context-aware mobile computing, first a discussion of the meaning of the term context is important. The word context can be defined as follows:

Context is any information that can be used to characterize the situation of an entity. An entity is a person, place or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves, and by extension, the environment the user and applications are embedded in. A system is context-aware if it uses context to provide relevant information and/or services to the user, where relevancy depends on the user’s task. (Dey, 2001)

Data gathered and used to describe the situation of an object can be defined as context. Some basic examples of context are temperature, user’s preferences, lighting, location of an entity, resources near the entity (such as printers or other devices), and social situation (for example, who you are with). A device that is able to gather this data is referred to as being context-aware. [7]

Defining Context-Aware

A device that is context-aware is a device that is able to sense the context that surrounds it. This is often done by using external sensory devices. Context-Aware Mobile Computing can then be defined as an application that can detect the user’s situation, then adapt its behavior according to that situation.[4]

Context-Aware applications and devices use context to perform three things:

  • Present services and information to the user (such as the time of day).
  • Perform an action automatically for the user (such as a phone automatically setting a weekly alarm)
  • Tag data to retrieve at a later time (a phone keeping track of recent calls)

These three things classify the actions that context-aware devices take. Context-aware mobile devices are able to provide these services in many different ways.[4]

Examples

The following are examples of context-aware features to help better illustrate the idea of context-aware devices, and to provide an understanding of how they are able to sense and utilize the context that surrounds them.

Smartphone Orientation

When a smartphone is positioned either vertically or horizontally, its screen will automatically flip to render that orientation. While this action may seem simplistic, there are actually very complex calculations that allow the phone to perform this basic action.

Most smartphones now come equipped with both a gyroscope and an accelerometer. These sensors are extremely small. While the technology is expensive to develop, once it is, these sensors are able to be mass produced quickly and cheaply. This makes the end product, the smartphone, cheaper in the end.

An accelerometer is a device that is very accurate in the long term, but in the short term it tends to provide data that lags or glitches. On the other hand, a gyroscope is very accurate in the short term, but in the long term it can drift away from the original position. In order to get an accurate portrayal of the orientation of the mobile device, both the accelerometer and the gyroscope must be used. [1]

User Location

A mobile device is able to tell a user’s location by using GPS. Location can be used in many different types of applications. For example, walking or driving navigation can use GPS to determine a route for the user to follow in order to reach their destination. GPS can also be used to display stores and restaurants near the device.

Enabling/Disabling Screen

When a user makes a call on a smartphone with a touch screen, the screen becomes disabled as the phone gets held up to the user’s ear. This is done to avoid call interruption. In order to perform this action, a proximity sensor is utilized.

The proximity sensor uses infrared rays to send as a signal. The infrared rays will be reflected back when they hit an object. When a user’s face comes too close to the screen, the proximity sensor is able to calculate how close the face is based on the time it takes for these infrared rays to return back. The phone will then disable the touch screen until the user’s face has returned to an acceptable distance from the phone again.

Phones are not the only devices to use the proximity sensor. In a similar fashion, cars can be equipped with proximity sensors to aid users in parallel parking, as well as proximity sensors for collision avoidance.

Active Badge Location System

The Active-Badge Location System was one of the first context-aware applications, which functioned as a call-forwarding system and was based on the location of a user. The system was built because in office buildings, important calls would go to a secretary who then would forward the call to the respective person’s office. However, often people were not in their offices, but rather in meetings or other rooms. The Active Badge system was built to solve this problem. The employee’s location was able to be detectedand based on the location a call could be forwarded to the correct room.

However, this system had its downfalls. For example, during a public meeting, an employee would likely not want to take a private call. Another example would be if an employee was in an important meeting with their supervisor, they would not want that meeting to be interrupted by a phone call. [4]

Schneider International Trucking Trackers

Schneider is a company that uses various context-aware mobile applications to secure the safety of their shipments. Each truck that is transporting a shipment is tracked using a GPS. This way, the company is able to send a notification to the destination when the shipment nears its destination. There are also sensors on the truck that are able to send a warning to the driver if the load door is open while the truck is turned on. This helps keeps the load safe throughout the trip.

History

The first mention of the idea of context-aware mobile computing was in 1991. The term itself was not used until 1994 in a paper written by Schilit and Theimer. It wasn’t until recently, when smartphones became more prevalent, that this technology has been integrated into our daily lives. As time goes on, it will become more and more prevalent. The development of the smartphone has proven to be a strong enabler for the advancement of this technology. [4]

Issues

Early Developer Issues

As context-aware mobile applications had just started being developed, researchers and developers faced numerous issues. Four main issues were as follows. First, developers had little to no experience with the devices that would be used to gather data for the device to determine context. For example, a programmer may not understand how a gyroscope works. However, this is important if the end device is supposed to utilize a gyroscope to determine the context. The second issue was the information gathered from the sensor had to be able to be interpreted correctly in order to be useful. The raw form that data comes back in is not very useful to the device. It needs to be abstracted correctly in order for the device to use it. The third issue was context can come from a variety of sources. In order for this data to be useful, it must be combined correctly. For example, the gyroscope and the accelerometer work together to sense the orientation of the device. If the data from these two sensors is not combined correctly, the calculation to detect orientation will not work correctly. The last issue developers faced was in the real world, context is likely to change constantly. A user can move around, continuously changing location, to which a device must be able to adapt. Being able to detect these changes in real time can be a difficult issue.[4]

These issues were the problems that developers faced early on. They can still be challenging today, but now that these issues are better researched it is much easier to avoid these problems.

Common Issues with Context-Aware Mobile Devices

Control vs. Automation

One of the biggest issues with these types of devices is the issue of automation vs. control. Many users enjoy the idea of their mobile device performing actions for them. However, when this idea becomes a reality, users often feel a loss of control and end up being dissatisfied with the device. It is important to find a balance between automation and control so a balance is maintained.

Figure 1: Dictates the relationship between automation and control.

As the level of automation increases, the level of control decreases. Users tend to be happiest when the automation-control balance is near the middle. They are least happy when all control is lost. [4]

Privacy

Issues surrounding privacy are huge in the world of context-aware mobile devices. As these devices become more and more context-aware, they are able to store a vast amount of information about a user’s behavior. In theory, a user should have control to dictate who can view and use their contextual information. However, in today’s world, seldom an application comes along that doesn’t come with a list of requests to access various pieces of information about a user. This could be a big issue in the future, since users feel better when they know their rights to privacy are not being infringed upon.[5]

Complexity

The complexity of an application can cause issues for users. A complex application is an especially high risk for context-aware mobile applications as they typically have a larger number of information sources than normal mobile applications do. To avoid confusing a user with a complex interface, applications should be well-tested by potential users before they are released. [4]

User Preference

In some cases, the user preferences may not match what the device does. Different people have different personal preferences. For example, one user might find 65 degrees to be warm, whereas another person finds 80 degrees to be warm. An application that tells you how to dress for the weather would need to cater to these user’s personal preferences. If the application was preset with a preference and was not able to be changed, this would cause the user to be very unsatisfied because personal preference would not be met. Other examples of personal preference include what time is considered morning or night, what volume of sound is considered loud, and what level of light is considered bright.[4]

Information Overload

Finally, information overload is an issue that should be avoided. Information overload occurs when a user becomes overwhelmed with information. A good example of this is a user walks down a busy shopping street in a big city. The user’s phone is suddenly bombarded with ads for all of the shops, and the user quickly becomes frustrated. [4]

Guidelines

Many of these guidelines to the problems above are simply to avoid the issues all together. However, here I will try to go more in depth and describe what to do in order to avoid these particular issues.

Avoid Uncertainty

The more automation a device has the less certain the user is what action the device will take. This goes hand in hand with the idea of control vs. automation. As these devices become more and more complex, would we trust them to, say, give a correct does of medicine? What if the machine takes an incorrect reading and calculates a person requires double the dose of medicine when they only need a single dose? These kinds of questions show the importance of keeping control in the user’s hands. Some automation is good, but ultimately, the user should be in control of the device.[4]

Avoid Unnecessary Interruptions

Frequent interruptions are irritating to the user. For example, if a weather application sends a text message to the user every time the temperature changes, the user will quickly become frustrated with the application. Keep interruptions appropriate; in the weather application example, a text message notifying the user of a weather warning or watch would be more appropriate.

Give the User Control

This guideline parallels avoiding too much automation. Make sure the user is able to dictate what they want automated and what they do not. Allow them to disable automations, if necessary. These steps allow the user to feel more in control.

Ensure System Status Visibility

Sometimes it is difficult to tell why a device is taking a certain action. This is why it is important to keep an appropriate level of system status visibility. To ensure system status visibility, simply make sure the user know why the device is taking a certain action. If the user understands why a device is performing an action they will feel less confused by the device.[4]

Account for Social Context

It is important to consider the social context the user may be in at any given time when designing a context-aware mobile application. A user who is in a meeting will not want the meeting interrupted by a loud notification on an application. If an application has sound, allow it to be turned down or muted with the rest of the phone’s volume.[4]

Allow for Personalization

As discussed earlier, different people have difference personal preferences. Allow the users to

customize and set items that may be considered personal preference. For example, a user can set a location on a map to be called home.

Secure the User’s Privacy

The issue of privacy is huge to users. For example, is it right to collect usage and location data from users and then sell this information to advertisers? An application can make a great deal of money by taking these actions.

Smart phones are now to the point where they know just about everything about a user. Information given by a mobile device has been used by police to solve several cases. Is it right to take a user’s private data to incriminate them? These are the kind of questions we face as this technology advances. In general, it is good practice to secure the user’s privacy. Users feel more comfortable and safe using an application that comes with no strings attached. [4]

Future

The future of context-aware mobile application is currently expanding at an exponential rate. Possibilities in this area are endless. The following are just a few examples of areas in which this innovation is occurring.