2012-12-05 87 views
1

我想知道Android設備是否實際具有定位傳感器。 我懷疑有改變方向並不是所有的Android手機屏幕的變化(比如QWERTY鍵盤手機)Android:定位:瞭解設備是否支持定位更改

我已經通過文件了,發現一個布爾值法「canDetectOrientation()」 here 但我沒有發現任何的提及描述。任何人都可以告訴我,如果這是 方法來確定設備是否支持方向更改。

在此先感謝。

+0

在[傳感器](http://developer.android.com/reference/android/hardware/Sensor.html)&[的SensorManager](http://goo.gl/u4lVQ) – rajpara

+0

外表出@ rajpara:看着傳感器和傳感器管理器,我可以找到的所有方向細節等都找不到,無法找到任何有助於發現手機是否有方向傳感器的東西。 –

回答

2

如果我們通過Type.AllgetSensorList功能,那麼我們將得到所有可用傳感器的列表。

然後我們可以遍歷一個列表並獲取所有傳感器的傳感器類型,如果我們發現傳感器類型方向(整數值是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); 
+0

非常感謝您的時間,我沒有去'Sensor.TYPE_ORIENTATION',因爲文檔中提到'這個常數在API級別8中被棄用。'並建議我們改爲使用'SensorManager.getOrientation()'。 –

+0

您是否同意傳感器類型值每次必須是3? – rajpara

+0

是的,現在明白了你的觀點。非常感謝,我應該做這個工作,試着讓你知道 –

相關問題