在Bluestacks上调试加速计传感器

时间:2013-06-13 10:23:34

标签: android accelerometer sensor bluestacks

我有一个Android测试项目,它将加速计信息显示在屏幕上。它在真实设备上运行良好。但是,当我在Bluestacks上运行并按下箭头键时,我就得到了

  

x:0,y:0,z:9,8

它永远不会改变。我做了调试但没看错。

为什么我的代码无法在BlueStacks上运行?

这是我的主要课程:

public class MainActivity extends Activity implements SensorEventListener {
TextView textView;
StringBuilder builder = new StringBuilder();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    textView = new TextView(this);
    this.setContentView(textView);

    SensorManager manager = (SensorManager) this
            .getSystemService(Context.SENSOR_SERVICE);
    if (manager.getSensorList(Sensor.TYPE_ACCELEROMETER).size() == 0)
        textView.setText("No Accelerometer installed");
    else {
        Sensor accelerometer = manager.getSensorList(
                Sensor.TYPE_ACCELEROMETER).get(0);
        if (!manager.registerListener(this, accelerometer,
                SensorManager.SENSOR_DELAY_GAME))
            textView.setText("could not register sensor listener");
    }
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
    // TODO Auto-generated method stub
}

@Override
public void onSensorChanged(SensorEvent event) {
    builder.setLength(0);
    builder.append("x: ");
    builder.append(event.values[0]);
    builder.append(" , y: ");
    builder.append(event.values[1]);
    builder.append(" , z: ");
    builder.append(event.values[2]);
    textView.setText(builder.toString());
}

}

编辑:我认识到Bluestacks是一个模拟器,所以它没有真正的加速度计。但是,有加速度计支持(参见文章here),它通过将按键解释为模拟运动的指令来工作。我自己也看过这个作品,因为我在BlueStacks上玩了“Air Penguin”游戏,方法是点击箭头键,这会导致加速度计值发生变化。那么按键在我的应用中怎么没有效果呢?我的代码中是否缺少某些内容?

0 个答案:

没有答案