Android应用程序上的多个传感器 [英] Multiple sensors on an android application

查看:172
本文介绍了Android应用程序上的多个传感器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在开发使用多个传感器的android应用程序, OnCreate方法中的mSensor= mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);用于获取传感器,onSensorChanged方法中的tv.setText("X: "+ sensorEvent.values[0] + ...);用于在文本视图中显示加速度计值.

I am currently developing an android application that uses multiple sensors, I have used mSensor= mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); in OnCreate Method to get the sensor and tv.setText("X: "+ sensorEvent.values[0] + ...);in onSensorChanged method, to display the accelerometer values in a text view.

如何添加更多传感器并以相同方式显示其值? 当我说sensorEvent.values[0]时,程序如何知道我指的是哪个传感器?

How can I add more sensors and display their values in the same way? How will the program know which sensor I am referring to when I say sensorEvent.values[0]?

谢谢您的任何帮助, 玛雅人

Thank you for any help in advance, Maja

推荐答案

您将需要使用event.sensor.getType()方法检查传感器值是否属于该类型的传感器.因此,如果您想同时访问磁力计和加速度计:

You will need to check if the sensor values are of that type of sensor with the event.sensor.getType() method. So if you wanted to access both the Magnetometer and Accelerometer:

sensorManager = (SensorManager)   
getActivity().getSystemService(Context.SENSOR_SERVICE);
sensorAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorMagnetic = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
sensorEventListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
            magnetic = event.values;
            tv.setText("X: "+ magnetic.values[0] + ...);
        }
        if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
            gravity = event.values;
            tv2.setText(X: " + gravity.values[0] + ...);
        }
    }
}

这篇关于Android应用程序上的多个传感器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆