1

我在 S3 上安装了 AndroSensor。我可以查看所有传感器。当我在 Galaxy Tab 10 上安装此软件时。我无法查看 Gyro 传感器数据。我正在做一个需要访问陀螺仪和加速度计的项目。

这两款手机都有陀螺仪-

  • 在 S3 中,我们有:LSM330DLC
  • 在 Galaxy Tab 中,我们有:MPU 3050

手机的Android版本是:

  • S3:安卓操作系统,v4.1
  • Galaxy Tab:安卓操作系统,v4.0.3

那么软件是不是因为安卓版本而无法运行?还是因为来自传感器的数据不同?

为什么软件没有检测到两部手机上的陀螺仪?

4

1 回答 1

3

我建议编写一些代码来查询 Android 的 SensorManager 对象。例如,尝试以下

SensorManager sm = (SensorManager)getSystemService(android.content.Context.SENSOR_SERVICE);
List<Sensor> sensorlist = sm.getSensorList(Sensor.TYPE_ALL);
for(Sensor sens : sensorlist) {
    Log.d("TEST", "Name="+sens.getName()+",Type="+sens.getType());
}
Sensor SensorGyro = sm.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
Log.d("TEST", (SensorGyro == null ? "SensorGyro==null":"Name="+SensorGyro.getName()+",Type="+SensorGyro.getType()));

并使用输出来帮助找出问题所在。我在我的 Galaxy Note 2 上运行了它,它产生了:

05-07 14:42:38.585: D/TEST(6160): Name=LSM330DLC Acceleration Sensor,Type=1
05-07 14:42:38.585: D/TEST(6160): Name=AK8963C Magnetic field Sensor,Type=2
05-07 14:42:38.585: D/TEST(6160): Name=LSM330DLC Gyroscope Sensor,Type=4
05-07 14:42:38.585: D/TEST(6160): Name=BMP182 Barometer Sensor,Type=6
05-07 14:42:38.585: D/TEST(6160): Name=CM36651 Proximity Sensor,Type=8
05-07 14:42:38.585: D/TEST(6160): Name=CM36651 Light Sensor,Type=5
05-07 14:42:38.585: D/TEST(6160): Name=Rotation Vector Sensor,Type=11
05-07 14:42:38.585: D/TEST(6160): Name=Gravity Sensor,Type=9
05-07 14:42:38.585: D/TEST(6160): Name=Linear Acceleration Sensor,Type=10
05-07 14:42:38.585: D/TEST(6160): Name=Orientation Sensor,Type=3
05-07 14:42:38.585: D/TEST(6160): Name=Corrected Gyroscope Sensor,Type=4
05-07 14:42:38.585: D/TEST(6160): Name=LSM330DLC Gyroscope Sensor,Type=4

所以那部手机上似乎有两个 Gysoscope 传感器。

于 2013-05-07T13:47:08.553 回答