我想知道安卓手机是否真的有方向传感器。我怀疑并不是所有的安卓手机屏幕都会随着方向的变化而变化(比如带有 qwerty 键盘的手机)
我浏览了文档并在 这里找到了一个布尔方法“canDetectOrientation()” 但是我发现描述中没有提到任何内容。谁能告诉我这是否是确定设备是否支持方向更改的方法。
提前致谢。
我想知道安卓手机是否真的有方向传感器。我怀疑并不是所有的安卓手机屏幕都会随着方向的变化而变化(比如带有 qwerty 键盘的手机)
我浏览了文档并在 这里找到了一个布尔方法“canDetectOrientation()” 但是我发现描述中没有提到任何内容。谁能告诉我这是否是确定设备是否支持方向更改的方法。
提前致谢。
如果我们传入函数Type.All
,getSensorList
那么我们将获得所有可用传感器的列表。
然后我们可以遍历一个列表并获取所有传感器的传感器类型,如果我们找到传感器类型方向(整数值为 3),那么我们可以得出结论该设备具有该传感器。
下面是相同的代码片段。
boolean OrientationSensorFound=false;
SensorManager mSensorManager;
Sensor mSensor;
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
List<Sensor> mSensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL );
for(int i=0;i<mSensorList.size();i++){
// 3 is value for Orientation sensor
if(Sensor.TYPE_ORIENTATION==mSensorList.get(i).getType()){
OrientationSensorFound=true;
break;
}
}
Log.i("Sensor Found", "Orientation found : "+OrientationSensorFound);
你可以看看实际的android源代码。只需按照http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/view/OrientationEventListener.java#OrientationEventListener.canDetectOrientation%28 %29