我(或我认为)将代码拼凑在一起,应该可以让我接受所有传感器数据的更改并将其输出到日志。但是,我得到的唯一传感器是光传感器(传感器#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);

}

最佳答案

TYPE_ALL用于获取设备中所有可用传感器的列表。要注册所有传感器,请调用getSensorList并注册列表中的每个成员。

List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : sensors)
{
    sm.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_UI);
}

关于android - Android传感器读数未返回所有传感器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16154570/

10-12 22:36