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" />
public Sensor getDefaultSensor (int type)
您还可以使用 SensorManager 的函数在运行时检查传感器是否可用于您的应用程序
。