java - 安卓加速计

标签 java android accelerometer

我收集了有关此事的大量示例和教程,但是一旦我实现了自己的版本,甚至直接复制代码,我就无法在日志中显示任何值。

我认为我遗漏了一个重要的部分,但我似乎无法弄清楚。

public class Accelerometer extends Activity {

    SensorManager sensorManager;
    Sensor accelerometer;

    private SensorEventListener sensorEventListener = new SensorEventListener() {

        public void onAccuracyChanged(Sensor sensor, int accuracy) {

        }

        public void onSensorChanged(SensorEvent event) {

            float x = event.values[0];
            float y = event.values[1];
            float z = event.values[2];
            update(x, y, z);
        }
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    }

    public void update(float x, float y, float z) {

        Log.v("semajhan", "x: " + x + " y: " + y + " z: " + z);
    }

    protected void onResume() {
        super.onResume();
        sensorManager.registerListener(sensorEventListener, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    }

    protected void onPause() {
        super.onPause();
        sensorManager.unregisterListener(sensorEventListener);
    }
}

我的问题似乎是我不知道如何真正访问加速度计。

一旦我能够获得这些值,我就可以继续前进,但我需要首先了解这一点。

最佳答案

你的代码对我来说似乎没问题。它类似于我也用来获取传感器数据的工作示例。一件事可能有问题。您确定您的设备上有该类型的传感器吗?

要检查使用

public List<Sensor> getSensorList (int type) 

SensorManager的功能。如果您在函数调用中使用 type = Sensor.TYPE_ALL 并浏览所有列表元素,则可以获得设备上可用传感器的完整列表。

更新:

尝试了你的代码。它功能齐全。问题是您的 Nexus 上禁用了痕迹显示。要启用跟踪,请转至“设置”->“应用程序”->“开发”并选中“USB 调试”选项。没有它,你就不会得到任何痕迹。

关于java - 安卓加速计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503753/

相关文章:

android - 使 Android WebView 不存储 cookie 或密码

ios - 背景中的计步器

c++ - C++ “was not declared in this scope”编译错误和修改提示

java - 如何从表中删除树节点及其子记录(无级联删除)?

java - 在java中打印文本模式

java - 替换 Wicket AjaxLink 中的文本

java - 获取 Android Spinner 焦点的最佳方式

java - 列表 Activity 和对话框

Android:动画完成后更新 LinearLayout 位置

android - 如何以编程方式在 Android 设备中设置模拟传感器(加速度计)