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线。对于测试,您可以在代码中的多个位置添加祝酒词,以确保事情正在执行