Android 使用传感器-加速计时出现问题

Android 使用传感器-加速计时出现问题,android,sensors,android-sensors,Android,Sensors,Android Sensors,我有一个Galaxy Tab 1000 我正试图写一个代码,可以识别任何运动 我有2.2版的手机 这是oncreate代码 OnCreate() mySensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); mySensorManager.registerListener(mySensorEventListener, mySensorManager

我有一个Galaxy Tab 1000

我正试图写一个代码,可以识别任何运动

我有2.2版的手机

这是oncreate代码


OnCreate()
    mySensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
        mySensorManager.registerListener(mySensorEventListener, mySensorManager
                .getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                SensorManager.SENSOR_DELAY_NORMAL); // 
这是sensor onsensorchanged实现(我认为非常简单),但不起作用


if (event.sensor.getType() == SensorManager.SENSOR_ACCELEROMETER) // Do WORK
event.sensor.getType()返回1

如果我这样做:getSensorList(Sensor.TYPE_ALL); 我有传感器罗盘,罗盘,BMA150(加速度),温度,磁铁,接近,灯光和陀螺仪

(奇怪-我以为它只在3.0版本中出现)

请告知,如何在手机上获取运动检测

谢谢



我有点搞不清楚你到底想做什么,但从我所做的,你想在你的onSensorChanged中得到加速度数据。您的oncreate看起来不错,但是您可以通过检查registerListener返回的bool来检查他们是否正确注册了侦听器。下面是我在侦听事件并检索返回的值时所做的操作

    @Override
    public void onSensorChanged(SensorEvent event)
    {
        // If the sensor data is unreliable return
        if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
        {
            //Toast.makeText(main.this, "Sensor Status Unreliable",Toast.LENGTH_SHORT).show();
            return;
        }


        // Gets the value of the sensor that has been changed
        switch (event.sensor.getType())
        {
        case Sensor.TYPE_ACCELEROMETER:
            m_vAccel = event.values.clone();
            break;
        }
另外,您也可以使用与加速计相同的线性加速度传感器
重力

BMA150(加速)不是你想要的吗?加速计是“运动检测”,你是对的。我设法用这些传感器使它工作。