2017-06-15 48 views
0

我想檢查某個位置是否有可用的軸承,如果有,請使用它。這基本上是我在做什麼:Android位置有什麼檢查?

if (loc.hasBearing()) { 
    // code that uses bearing 
} else { 
    // log no bearing 
} 

的代碼中,如果塊獲取大量的與0(Math.floor'd)的軸承位置執行,而0是沒有實際影響。

我會盡力確保我拿到軸承(或者至少是我使用支持軸承供應商):

criteria.setBearingRequired(true); 
criteria.setBearingAccuracy(Criteria.ACCURACY_MEDIUM); 

我把位置爲目的的羣衆演員,並再次採取出來..也許這跟它有關係?我只是使用putExtra和getParcelable - 我不認爲這會破壞位置。

我在考慮忽略0.0的軸承,它不應該有太多的誤報,但我希望有一個乾淨的API使用替代我。

回答

0

documentation

獲取軸承,以度。

方位是此設備的行進水平方向,並且是 與設備方向無關。它是保證在 範圍(0.0,360.0]如果設備具有一個軸承。

如果此位置不具有軸承然後0.0返回

由於getBearing()返回0.0如果位置沒有軸承,你可以安全地忽略它

+0

謝謝 - 我被掛在hasBearing返回誤報,我沒有閱讀getBearing文檔...文檔中排除的0.0解決我的問題甚至如果它不回答我爲什麼hasBearing出現問題的問題。 – Crag