我正在为android编写一个游戏,希望能够使用加速度计进行输入。
我看到了两种获取传感器的方法,一种是使用SensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER)的第一个元素,另一种是SensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)
getDefaultSensor doc表示它可以返回一个“复合”传感器,因此如果我想要一个“原始”传感器,我应该使用getSensorList
知道复合传感器和原始传感器有什么区别吗?这甚至适用于加速计吗?有没有人对装有多个或复合加速度计的设备有经验?(或者其他传感器?)

最佳答案

谷歌的文档远远领先于他们在这里的实现。我浏览了一下code repository(似乎是2.3.1-ish源),发现:

public Sensor getDefaultSensor(int type) {
    // TODO: need to be smarter, for now, just return the 1st sensor
    List<Sensor> l = getSensorList(type);
    return l.isEmpty() ? null : l.get(0);
}

因此,从getDefaultSensor()返回的传感器和从getSensorList()返回的传感器之间没有真正的区别(我想他们以后也不能添加一个)。

10-08 03:26