Scanning for supported sensor channels on a device

Use CSensrvChannelFinder::FindChannelsL to scan for the sensor channels a device supports.

For information about which sensor channel types are supported in different devices, see the Device specifications on Forum Nokia.

#include <sensrvchannelfinder.h>
...

CSensrvChannelFinder* finder = CSensrvChannelFinder::NewLC();
RSensrvChannelInfoList channelList;

TSensrvChannelInfo info;
finder->FindChannelsL( channelList, info );

for (TInt i = 0; i<channelList.Count(); i++)
    TBuf<100> type;
    info = channelList[i];
    switch(info.iChannelType)
        {
        case KSensrvChannelTypeIdUndefined:
            type = _L("Undefined - Error if you see it");
            break;
        case KSensrvChannelTypeIdOrientationData:
            type = _L("Orientation Data");
            break;
        case KSensrvChannelTypeIdRotationData:
            type = _L("Rotation Data");
            break;
        case KSensrvChannelTypeIdAmbientLightData:
            type = _L("Ambient Light Data");
            break;
        case KSensrvChannelTypeIdMagneticNorthData:
            type = _L("Magnetic North Data");
            break;
        case KSensrvChannelTypeIdMagnetometerXYZAxisData:
            type = _L("Magnetometer XYZ Axis Data");
            break;
        case KSensrvChannelTypeIdAccelerometerXYZAxisData:
            type = _L("Accelerometer XYZ Axis Data");
            break;
        case KSensrvChannelTypeIdProximityMonitor:
            type = _L("Proximity Monitor");
            break;
        case KSensrvChannelTypeIdAccelerometerDoubleTappingData:
            type = _L("Accelerometer Double Tapping Data");
            break;

        default:
            type.Format(_L("Unknonwn: 0x%08x"),info.iChannelType);
        }
    CAknInformationNote* note = new (ELeave) CAknInformationNote (ETrue);
    note->ExecuteLD(type);
    }

CleanupStack::PopAndDestroy(finder);
}