Google cardboard的网站有一个设备兼容性列表:它似乎有些不完整,所以我尝试查看Cardboard.jar的源代码。HeadTracker.java似乎有以下逻辑:
SensorManager sensorManager = (SensorManager)HeadTracker.this.mContext.getSystemService("sensor");
for (int sensorType : HeadTracker.INPUT_SENSORS) {
Sensor sensor = sensorManager.getDefaultSensor(sensorType);
sensorManager.registerListener(HeadTracker.this.mSensorEventListener, sensor, 0, handler);
}
将INPUT_SENSORS定义在同一文件中
{TYPE_ACCELEROMETER, TYPE_GYROSCOPE};
我不确定HeadTracker是否可以在只有其中一个传感器的手机上工作。我的猜测是,两者都是必要的。
您的应用程序可能需要某些审查器才能在清单中使用以下行运行(甚至在Android市场上可见):
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />
您还可以使用 SensorManager 的功能在运行时检查传感器是否可用于您的应用。public Sensor getDefaultSensor (int type)