public bool IsActive(DeviceSensorType sensorType)
 {
     return sensorStatus[sensorType];
 }
        public void Start(DeviceSensorType sensorType, DeviceSensorDelay sensorDelay)
        {
            SensorDelay delay;
            switch (sensorDelay)
            {
                case DeviceSensorDelay.UI:
                    delay = SensorDelay.Ui;
                    break;
                case DeviceSensorDelay.GAME:
                    delay = SensorDelay.Game;
                    break;
                case DeviceSensorDelay.FASTEST:
                    delay = SensorDelay.Fastest;
                    break;
                default:
                    delay = SensorDelay.Normal;
                    break;
            }

            // Android will check whether there is already a sensor has been registered,
            // If you have already registered listener, Android is not gonna add the same listener twice.
            // The same is applicable for unregister logic
            switch (sensorType)
            {
                case DeviceSensorType.Accelerometer:
                    if (sensorAccelerometer != null)
                        sensorManager.RegisterListener(this, sensorAccelerometer, delay);
                    else
                        Console.WriteLine("Accelerometer is null.");
                    break;
                case DeviceSensorType.Gravimeter:
                    if (sensorGravimeter != null)
                        sensorManager.RegisterListener(this, sensorGravimeter, delay);
                    else
                        Console.WriteLine("Gravimeter is null.");
                    break;

                case DeviceSensorType.Gyroscope:
                    if (sensorGyroscope != null)
                        sensorManager.RegisterListener(this, sensorGyroscope, delay);
                    else
                        Console.WriteLine("Gyroscope is null.");
                    break;

                case DeviceSensorType.Magnetometer:
                    if (sensorMagnetometer != null)

                        sensorManager.RegisterListener(this, sensorMagnetometer, delay);
                    else
                        Console.WriteLine("Magnetometer is null.");
                    break;

                case DeviceSensorType.Orientation:
                    if (sensorOrientation != null)
                        sensorManager.RegisterListener(this, sensorOrientation, delay);
                    else
                        Console.WriteLine("Orientation not available. Accelerometer and Magnetometer must not be null.");
                    break;
            } //end case
            sensorStatus[sensorType] = true;
        }
        public void Stop(DeviceSensorType sensorType)
        {
            switch (sensorType)
            {
                case DeviceSensorType.Accelerometer:
                    if (sensorAccelerometer != null)
                        sensorManager.UnregisterListener(this, sensorAccelerometer);
                    else
                        Console.WriteLine("Accelerometer is null.");
                    break;
                case DeviceSensorType.Gravimeter:
                    if (sensorGravimeter != null)
                        sensorManager.UnregisterListener(this, sensorGravimeter);
                    else
                        Console.WriteLine("Gravimeter is null.");
                    break;

                case DeviceSensorType.Gyroscope:
                    if (sensorGyroscope != null)
                        sensorManager.UnregisterListener(this, sensorGyroscope);
                    else
                        Console.WriteLine("Gyroscope is null.");
                    break;

                case DeviceSensorType.Magnetometer:
                    if (sensorMagnetometer != null)

                        sensorManager.UnregisterListener(this, sensorMagnetometer);
                    else
                        Console.WriteLine("Magnetometer is null.");
                    break;

                case DeviceSensorType.Orientation:
                    if (sensorOrientation != null)
                        sensorManager.UnregisterListener(this, sensorOrientation);
                    else
                        Console.WriteLine("Orientation not available. Accelerometer and Magnetometer must not be null.");
                    break;
            } //end case
            sensorStatus[sensorType] = false;
        }
 public SensorValueChangedEventArgs(DeviceSensorValues sv, DeviceSensorType st)
 {
     SensorValues = sv;
     SensorType = st;
 }