我已经(或者这么认为)拼凑了代码,这些代码应该允许我接收所有传感器数据的更改并将它们输出到日志中。然而,我得到的唯一传感器是光传感器(传感器#5)。
在OnCreate内部:
{
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Log.i("aaa","---sensors on");
sm.registerListener(sensorListener,sm.getDefaultSensor(Sensor.TYPE_ALL),SensorManager.SENSOR_DELAY_UI);
List<Sensor> typedSensors = sm.getSensorList(Sensor.TYPE_ALL);
for(Iterator<Sensor> i = typedSensors.iterator(); i.hasNext();)
{
Sensor item = i.next();
Log.i("aaa","SENSOR: "+item.getName());
}
}其他相关守则:
private static SensorEventListener sensorListener=new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
writeSensorLog(e.sensor.getType()+":"+e.values[0]);
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// unused
}
};
public static void writeSensorLog(String data)
{
Log.i("aaa","sensor string: "+data);
}发布于 2013-04-22 19:21:05
TYPE_ALL用于获取设备中所有可用传感器的列表。要注册所有传感器,请调用getSensorList并注册列表中的每个成员。
List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : sensors)
{
sm.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_UI);
}https://stackoverflow.com/questions/16154570
复制相似问题