The sensor channel APIs enable you to receive notifications when a sensor channel is added or removed. This ensures that you are informed of changes to sensor channels whenever there is a change. For example, you can receive notifications when a specific proximity sensor channel is added.
Before listening for channel changes, you must open the sensor channel.
Create a channel
listener implementation for the MSensrvChannelListener
interface.
class ChannelListener:public MSensrvChannelListener { public: void ChannelChangeDetected(const TSensrvChannelInfo &aDetectedChannel, TSensrvChannelChangeType aChangeType) { ... //Implementation } void ChannelDetectionError(CSensrvChannelFinder aChannelFinder, TSensrvErrorSeverity aError) { ... //Implementation } void GetChannelListenerInterfaceL(TUid aInterfaceUid, TAny *aInterface) { ... //Implementation } };
Start channel listening
by passing an instance of the channel listener implementation, using CSensrvChannelFinder::SetChannelListenerL()
function.
//Instance of the channel listener implementation ChannelListener channelListener; //Channel search parameters TSensrvChannelInfo &searchParameters ... CSensrvChannelFinder* finder = CSensrvChannelFinder::NewLC(); ... channel->SetChannelListenerL(channelListener, searchParameters); ...
This listens for channels that meet the supplied search parameters.
When a channel change occurs, a ChannelChangeDetected
notification
is delivered through the MSensrvChannelListener
interface.
Stop channel listening
by passing a NULL parameter to the CSensrvChannelFinder::SetChannelListenerL()
function.
ChannelListener channelListener=NULL; finder->SetChannelListenerL(channelListener, searchParameters);