2013-05-22 56 views
1

有沒有我可以使用任何代碼,這樣我就不必實現它在我自己的自動更改從GPS_PROVIDERNETWORK_PROVIDER如何從GPS_PROVIDER自動更改爲NETWORK_PROVIDER

其實我用這個代碼:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 

但我要做到以下幾點:
嘗試使用GPS,只要它是不可使用NETWORK_PROVIDER。但是,當GPS可用切換到它。當GPS丟失切換回NETWORK_PROVIDER

回答

1

你應該看看在谷歌播放服務融合的新位置提供。有人提出了在谷歌IO 2013年

它消除選擇某個LocationProvider的麻煩,提供了更好的效果等等。

有關概述看看here或觀看Video。對於融合位置提供程序代碼示例,請在16:00收聽。

+0

偉大的信息! TNX – Ranco

2
Location loc =locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);  
    if(loc == null) 
    { 
     loc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 

     if(loc != null) 
     { 
      //do stuff on network provider 
     } 

    } else { 
     // do stuff on gps provider 
    } 
+0

我犯了一個錯誤之前,現在我已經編輯了答案..看看這可以幫助.. – aditya

0

使用locationmanager.getProviders如here所述。 每個位置監聽器將輸入的時間這樣,你就可以從現有的供應商選擇你的位置。

1

我會建議一個更好的選擇,嘗試用一個標準來選擇最好的供應商。它會自動切換爲最佳供應商。

String provider = lm.getBestProvider(criteria, true); 

獲取更多的細節來看看here

好運