Android:Orientation:了解设备是否支持方向更改

Android:Orientation:了解设备是否支持方向更改,android,android-layout,android-orientation,Android,Android Layout,Android Orientation,我想知道安卓手机是否真的有方位传感器。 我怀疑并非所有android手机的屏幕都会随着方向的改变而改变(比如带有qwerty键盘的手机) 我浏览了文档,发现了一个布尔方法“candetectororientation()” 但我在描述中没有发现任何内容。有人能告诉我这是不是 方法来确定设备是否支持方向更改 提前感谢。您可以查看实际的android源代码。如果我们在getSensorList函数中通过了Type.All,那么我们将获得所有可用传感器的列表 然后,我们可以遍历一个列表并获取所有传感器

我想知道安卓手机是否真的有方位传感器。 我怀疑并非所有android手机的屏幕都会随着方向的改变而改变(比如带有qwerty键盘的手机)

我浏览了文档,发现了一个布尔方法“candetectororientation()” 但我在描述中没有发现任何内容。有人能告诉我这是不是 方法来确定设备是否支持方向更改


提前感谢。

您可以查看实际的android源代码。如果我们在
getSensorList
函数中通过了
Type.All
,那么我们将获得所有可用传感器的列表

然后,我们可以遍历一个列表并获取所有传感器的传感器类型。如果我们找到了传感器类型方向(整数值为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);
布尔方向sensorfound=false;
传感器管理器;
传感器;
msSensorManager=(SensorManager)getSystemService(传感器服务);
List mSensorList=mSensorManager.getSensorList(Sensor.TYPE_ALL);

对于(int i=0;我在&@rajpara中查看了传感器和传感器管理器,我所能找到的只是获取方向详细信息等,找不到任何有助于确定手机是否有方向传感器的信息。非常感谢您的时间,我没有选择“传感器。键入方向”,因为文档中说“此常量不适用”并建议我们改为使用“SensorManager.getOrientation()”。您同意每次传感器类型值必须为3吗?是的,现在明白您的意思了。非常感谢,我想这应该可以完成工作,我会尝试让您知道