索尼 SmartEyeglass 读取加速度计

Sony SmartEyeglass read Accelerometer

我正在尝试获取 SmartEyeglass 的加速度计值的浮点数组。 我想在我的 ControlExtension 中有一个浮点数组,如果加速度计发生变化,它会自动更新。

官方文档帮助不大。 我必须做什么?

到目前为止我意识到我需要包含这个属性:

eprivate final AccessorySensorEventListener listener =
        new AccessorySensorEventListener() {
    // Respond to change by updating the screen to
    // display the current sensor data
    @Override
    public void onSensorEvent(final AccessorySensorEvent sensorEvent) {
        Log.d(Constants.LOG_TAG, "Listener: OnSensorEvent");
        float[] data = sensorEvent.getSensorValues();
        doStuff(data);
    }
};

但这不会 doStuff(data) 而且我不知道数据数组中会有什么。

将此添加到构造函数可解决问题:

// Create a sensor manager object
AccessorySensorManager manager =
        new AccessorySensorManager(context, hostAppPackageName);

AccessorySensor acc = manager.getSensor(Registration.SensorTypeValue.ACCELEROMETER);
try {
    acc.registerFixedRateListener(listener, Sensor.SensorRates.SENSOR_DELAY_FASTEST);
} catch (AccessorySensorException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}