Android 实现启动和停止传感器

Android 实现启动和停止传感器,android,Android,我正在研究iphone中的传感器动作,我想知道是否有人知道如何在android中实现启动和停止传感器动作。我已经搜索了这个论坛,但没有找到明确的东西。有人有什么线索吗?在活动中使用传感器很容易。基本上你需要: 1º说明您需要的传感器 // Sensor static static private SensorManager mSensorManager; static private List<Sensor> deviceSensors; static private Sen

我正在研究iphone中的传感器动作,我想知道是否有人知道如何在android中实现启动和停止传感器动作。我已经搜索了这个论坛,但没有找到明确的东西。有人有什么线索吗?

在活动中使用传感器很容易。基本上你需要:

1º说明您需要的传感器

    // Sensor static
static private SensorManager mSensorManager;
static private List<Sensor> deviceSensors;
static private Sensor mAccelerometer;
static private Sensor mGravity;
static private Sensor mGyroscope;
static private Sensor mLinearAcceleration;
static private Sensor mRotationVector;
static private Sensor mOrientation;
static private Sensor mMagneticField;
static private Sensor mProximity;
static private Sensor mPressure;
static private Sensor mLight;
3ºloadDefault传感器是这样的:

       // Add sensor manager STATIC (only 1 time)
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);


    // Load default Sensors
    loadDefaultSensors();

    // Set Sensor Listener
    setAllSensorListener();
        mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    mGravity = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
    mGyroscope = mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
    mLinearAcceleration = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
    mRotationVector = mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR);
    mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
    mMagneticField = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
    mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
    mPressure = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
    mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
和4,设置侦听器:

        mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mGravity, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mGyroscope, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mLinearAcceleration, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mRotationVector, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mOrientation, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mMagneticField, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mProximity, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mPressure, SensorManager.SENSOR_DELAY_NORMAL);
    mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL);
5º如果您需要节省CPU等,您可以在暂停时使用取消侦听器,并在恢复时再次注册

        mSensorManager.unregisterListener(this);

我希望这有助于开始。。。。。你需要知道的是,如果我有机会给你100个,我会为你做的,在这整个过程中,没有人说过要使用
unregisterListener