Exemple #1
0
        private void RegisterSelfAsSensorListener(/* final */ SensorManager pSensorManager, /* final int */ SensorType pType, /* final */ Android.Hardware.SensorDelay pSensorDelay)
        {
            /* final */
            Sensor sensor = pSensorManager.GetSensorList(pType)[0];

            pSensorManager.RegisterListener(this, sensor, pSensorDelay /*.getDelay()*/);
        }
Exemple #2
0
        public void Start(InteractClient.Sensors.SensorType sensorType, InteractClient.Sensors.SensorDelay interval = InteractClient.Sensors.SensorDelay.Default)
        {
            Android.Hardware.SensorDelay delay = Android.Hardware.SensorDelay.Normal;
            switch (interval)
            {
            case InteractClient.Sensors.SensorDelay.Fastest: delay = Android.Hardware.SensorDelay.Fastest; break;

            case InteractClient.Sensors.SensorDelay.Game: delay = Android.Hardware.SensorDelay.Game; break;

            case InteractClient.Sensors.SensorDelay.Ui: delay = Android.Hardware.SensorDelay.Ui; break;
            }

            switch (sensorType)
            {
            case InteractClient.Sensors.SensorType.AcceleroMeter:
                if (sensorAccelerometer != null)
                {
                    sensorManager.RegisterListener(this, sensorAccelerometer, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: AcceleroMeter not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Gyroscope:
                if (sensorGyroscope != null)
                {
                    sensorManager.RegisterListener(this, sensorGyroscope, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Gyroscope not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.MagnetoMeter:
                if (sensorMagnetometer != null)
                {
                    sensorManager.RegisterListener(this, sensorMagnetometer, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Magnetometer not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Compass:
                if (sensorCompass != null)
                {
                    sensorManager.RegisterListener(this, sensorCompass, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Compass not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Light:
                if (sensorLight != null)
                {
                    sensorManager.RegisterListener(this, sensorLight, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Light not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Pressure:
                if (sensorPressure != null)
                {
                    sensorManager.RegisterListener(this, sensorPressure, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Pressure not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Proximity:
                if (sensorProximity != null)
                {
                    sensorManager.RegisterListener(this, sensorProximity, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Proximity not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.LinearAcceleration:
                if (sensorLinearAcceleration != null)
                {
                    sensorManager.RegisterListener(this, sensorLinearAcceleration, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Linear Acceleration not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Rotation:
                if (sensorRotation != null)
                {
                    sensorManager.RegisterListener(this, sensorRotation, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Rotation not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.GameRotation:
                if (sensorGameRotation != null)
                {
                    sensorManager.RegisterListener(this, sensorGameRotation, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Game Rotation not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Humidity:
                if (sensorHumidity != null)
                {
                    sensorManager.RegisterListener(this, sensorHumidity, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Humidity not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.AmbientTemperature:
                if (sensorAmbientTemperature != null)
                {
                    sensorManager.RegisterListener(this, sensorAmbientTemperature, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Ambient Temperature not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.SignificantMotion:
                if (sensorSignificantMotion != null)
                {
                    sensorManager.RequestTriggerSensor(TriggerEventListener, sensorSignificantMotion);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Significant Motion not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.StepDetector:
                if (sensorStepDetector != null)
                {
                    sensorManager.RegisterListener(this, sensorStepDetector, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Step Detector not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.StepCounter:
                if (sensorStepCounter != null)
                {
                    sensorManager.RegisterListener(this, sensorStepCounter, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Step Counter not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.HeartRate:
                if (sensorHeartRate != null)
                {
                    sensorManager.RegisterListener(this, sensorHeartRate, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Heart Rate not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Pose:
                if (sensorPose != null)
                {
                    sensorManager.RegisterListener(this, sensorPose, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Pose not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Stationary:
                if (sensorStationary != null)
                {
                    sensorManager.RegisterListener(this, sensorStationary, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Stationary not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Motion:
                if (sensorMotion != null)
                {
                    sensorManager.RegisterListener(this, sensorMotion, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Motion not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.HeartBeat:
                if (sensorHeartBeat != null)
                {
                    sensorManager.RegisterListener(this, sensorHeartBeat, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Heart Beat not available.");
                }
                break;

            case InteractClient.Sensors.SensorType.Tilt:
                if (sensorMagnetometer != null && sensorAccelerometer != null)
                {
                    sensorManager.RegisterListener(this, sensorMagnetometer, delay);
                    sensorManager.RegisterListener(this, sensorAccelerometer, delay);
                }
                else
                {
                    Network.Sender.WriteLog("Sensor: Tilt not available.");
                }
                break;
            }
            sensorStatus[sensorType] = true;
        }