Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓加速度计_Java_Android_Accelerometer - Fatal编程技术网

Java 安卓加速度计

Java 安卓加速度计,java,android,accelerometer,Java,Android,Accelerometer,我收集了大量关于这个问题的示例和教程,但一旦我实现了自己的版本,甚至只是直接复制代码,我就无法在日志中显示任何值 我想我遗漏了一个重要的部分,但我似乎无法理解 public class Accelerometer extends Activity { SensorManager sensorManager; Sensor accelerometer; private SensorEventListener sensorEventListener = new Senso

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

我想我遗漏了一个重要的部分,但我似乎无法理解

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) 
public List getSensorList(int类型)
传感器管理器的功能。如果使用
type=Sensor,您可以获得设备上可用传感器的完整列表。在函数调用中键入\u ALL
,并浏览所有列表元素

更新:


我试过你的代码。它功能齐全。问题是在Nexus上禁用了跟踪显示。要启用跟踪,请转到设置->应用程序->开发并选中选项USB调试。没有这一点,你就没有任何踪迹。

我不知道你的意思。我有Nexus One。设备没有在SensorManager列表中列出所有传感器。要查看您的设备是否已请求传感器,您可以使用所述方法获取可用传感器的列表。然而,因为您使用的是NexusOne,所以这应该不是问题。我测试了Android SDK提供的传感器的代码片段,它在NexusOne上的加速计上正常工作。所以,奇怪的问题。我的项目编译和运行良好,没有问题,只是它没有记录任何东西。我假设每当我以不同的角度旋转设备时,它都会保持记录,我再次假设这将调用onSensorChanged方法。旋转设备是一个传感器。TYPE_方向事件不是SENSOR。TYPE_加速度计所以,如果我想获得关于我的手机如何沿轴旋转的信息,我会使用方向?代码看起来不错。我唯一没用过的就是Log.v线。对于测试,您可以在代码中的多个位置添加祝酒词,以确保事情正在执行