我正在为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()
返回的传感器之间没有真正的区别(我想他们以后也不能添加一个)。