Exemplo n.º 1
0
        public ISensor this[SensorType sensorType]
        {
            get
            {
                for (int i = 0; i < _Sensors.Count; i++)
                {
                    if (_Sensors[i].SensorType == sensorType)
                    {
                        return(_Sensors[i]);
                    }
                }
                if (sensorType == SensorType.Velocity)
                {
                    VelocitySensor veloctiySensor = new VelocitySensor(this);
                    _Sensors.Add(veloctiySensor);
                    return(veloctiySensor);
                }
                else
                {
                    Android.Hardware.SensorType?droidTypeNullable = sensorTypeToDroidSensorType(sensorType);

                    if (droidTypeNullable == null)
                    {
                        return(null);
                    }
                    Android.Hardware.SensorType droidSensorType = (Android.Hardware.SensorType)droidTypeNullable;
                    Android.Hardware.Sensor     droidSensor     = _DroidSensorManager.GetDefaultSensor(droidSensorType);
                    //检查一下这个Sensor是不是已经被创建过了

                    SingleSensor sensor = new SingleSensor(this, droidSensor);
                    _Sensors.Add(sensor);
                    return(sensor);
                }
            }
        }
Exemplo n.º 2
0
            private SensorType?droidSensorTypeToSensorType(Android.Hardware.SensorType droidSensorType)
            {
                switch (droidSensorType)
                {
                case Android.Hardware.SensorType.Gyroscope:
                    return(SensorType.Gyroscope);

                case Android.Hardware.SensorType.Accelerometer:
                    return(SensorType.Accelerometer);

                case Android.Hardware.SensorType.MagneticField:
                    return(SensorType.MagneticField);

                case Android.Hardware.SensorType.GameRotationVector:
                    return(SensorType.RotationVector);
                }
                return(null);
            }