Privacy Notifiers

Privacy Notifiers notify a user of privacy requests received from the network. A licensee must implement either Privacy Notifiers as described in this document, or a Privacy Controller to handle privacy requests.

Purpose

This document describes LBS privacy notifiers and the data types that licensees can use to create notifiers to notify a user of privacy requests. A licensee must implement either a Privacy Controller or the Privacy Notifiers described in this document to handle privacy requests. See LBS privacy requests overview for more information.

Note that use of the LBS Privacy Notifiers described in this document is the recommended way of creating notifiers for LBS. The alternative Privacy Q&N Notifiers are deprecated.

Some knowledge of the Extended Notifier Framework is required to understand the notifiers described in this document.

How to create Privacy Notifiers has examples of how to create LBS Privacy Notifiers using the API described in this document.

Introduction

Figure 1 shows the LBS Privacy Notifiers within the context of the Full LBS configuration. The LBS Privacy Notifiers are standard Symbian notifier plug-ins that use LBS Privacy Request Data Types to package the request and response data that is sent between the LBS subsystem and the notifiers.

To use the LBS Privacy Notifiers, a licensee must implement two notifiers:

  • A Privacy Verification Notifier that receives a privacy verification request from the LBS subsystem and returns a privacy response. This notifier is used to obtain user approval to send the location.

  • A Privacy Notification Notifier that receives a privacy notification request from the LBS subsystem and does not return any response. This notifier is used simply to notify the user that their location is being sent.

Figure 1. Figure 1. The Privacy Notifiers and part of the LBS subsystem.

Privacy Notifiers API description

The LBS Privacy Notifiers are standard Symbian notifiers that use the Symbian Extended Notifier Framework. There are no additional LBS-specific base classes from which licensee notifier implementations must derive. LBS Privacy Notifiers derive directly from the notifier base class MEikSrvNotifierBase2.

Classes and types

The following table lists the main classes and types of the Privacy Data Types. Further details can be found by following the links to other sections of this document and to Symbian Developer Library reference documentation.

The Privacy Notifiers types have publishedPartner interface access.

Class name Description Header file

TLbsExternalRequestInfo

Contains information about the requester of the location.

lbsloccommon.h

TLbsPrivacyNotifierParams

A container for the parameters that are sent to the LBS notifiers. Both a Privacy Verification Notifier and a Privacy Notification Notifier receive these parameters. This class wraps a TLbsExternalRequestInfo object.

lbsextprivacynotifiers.h

TLbsPrivacyNotifierParamsPckg

A typedef to wrap a TLbsPrivacyNotifierParams in a TPckgBuf. Use this type to send the notifier parameters to a dialog via the RNotifier API.

lbsextprivacynotifiers.h

TLbsPrivacyNotifierResponse

An enumerated type that contains the user response to the Privacy Verification Notifier (request acceptance or rejection).

lbsextprivacynotifiers.h

TLbsPrivacyResponseParams

Container for the parameters that are returned from the LBS Privacy Verification Notifier.

lbsextprivacynotifiers.h

TLbsPrivacyResponseParamsPckg

A typedef to wrap a TLbsPrivacyResponseParams in a TPckgBuf. Use this type to retrieve the result parameters from a dialog via the RNotifier API.

lbsextprivacynotifiers.h

Licensees who choose to use LBS Privacy Notifiers must implement two of them, one for privacy request verification and one for privacy request notification. Both notifiers can be packaged in the same ECOM plug-in DLL.

The header file lbsextprivacynotifiers.h also contains definitions of the UIDs that must be used for LBS Privacy Notifiers. These values are specified as KLbsExtLocationRequestVerifyUid for a privacy verification notifier and KLbsExtLocationRequestNotifyUid for a privacy notification notifier. How to create LBS Privacy Notifiers has examples of their use.

Privacy Notifiers API class diagram

The LBS Privacy Notifier data classes and types are defined in lbsprivacyextnotifiers.h and are shown in figure 2. This figure also shows the TLbsExternalRequestInfo class that is used to pass request data from the LBS subsystem to the notifiers. This class is described in Privacy Controller documentation.

Figure 2. Figure 2. LBS Privacy Notifier data classes.

Libraries

The LBS Privacy Notifiers are packaged in lbsprivacyextnotifiers.dll. A client (an LBS Privacy Notifier) links to lbsprivacyextnotifiers.lib.

Capabilities

Privacy Notifiers require the TrustedUI and ProtServ capabilities that are required by all notifiers that use the Extended Notifier Framework. The capabilities are specified in the Notifier's MMP file. See How to create LBS Privacy Notifiers for more information.

LBS Configuration

The LBS Administration setting KLbsSettingPrivacyHandler must be set to CLbsAdmin::EPrivacyHandleByNotifier to configure LBS to use Privacy Notifiers. See LBS administration for details of how to configure this setting either through the LBS Administration API or in the LBS central repository initialisation file.

Sequential processing of privacy requests

The LBS subsystem sends privacy requests sequentially to Privacy Notifiers. If multiple privacy requests are received how they are handled depends on the interface via which the privacy request was received:

  • Request received from a Network Protocol Module

    A second privacy request forces LBS to cancel an outstanding privacy request (but not emergency requests). The Privacy Notifier in use for the first privacy request is cancelled. The Privacy Notifier is then restarted to handle the second privacy request.

  • Request received via the Network Privacy API or the Privacy Request API

    Privacy notification and verification requests are sent sequentially to Privacy Notifiers. A Privacy Notifier must have responded to one privacy request (or LBS must have sent a timeout response) before the next request can be sent to the notifier. The maximum number of privacy requests that can be outstanding in the LBS subsystem is defined by the LBS administration setting KLbsSettingMaximumExternalLocateRequests. Further requests are rejected by the LBS subsystem if the number of outstanding privacy requests exceeds KLbsSettingMaximumExternalLocateRequests.