The sensor channel APIs enable the client applications to be notified about the changes to properties associated with a sensor channel.
The client applications can use the property listener to monitor the property changes made by other clients.
Create a property
listener implementation for the MSensrvPropertyListener
interface.
class PropertyListener:public MSensrvPropertyListener { public: void PropertyChanged(CSensrvChannel &aChannel, const TSensrvProperty &aChangedProperty) { ... //Implementation } void PropertyError(CSensrvChannel &aChannel, TSensrvErrorSeverity aError) { ... //Implementation } void SetPropertySuccessIndicationChanged(TSetPropertySuccessIndicator aIndication) { ... //Implementation } void GetPropertyListenerInterfaceL(TUid aInterfaceUid, TAny *&aInterface) { ... //Implementation } };
Start property listening by passing an instance of property listener implementation using CSensrvChannel::SetPropertyListenerL().
//Instance of the property listener implementation PropertyListener propListener; ... CSensrvChannel* channel; ... channel->SetPropertyListenerL(&propListener); ...When a property change occurs, a
PropertyChanged()
notification
is delivered through the MSensrvPropertyListener
callback
interface to the clients that are listening for property changes.Note: The client that set the property is not notified.
Once you get the required property changes associated with the sensor channel, you can stop property listening by passing a NULL parameter to the CSensrvChannel::SetPropertyListenerL() function.
channel->SetPropertyListenerL();