2011-11-04 23 views
1

我正在做一個Android應用程序,需要使用GPS記錄一個很好的準確性,如速度,航向,高度和長/緯度等司機統計。Android應用程序的位置與速度

我需要每秒跟蹤位置,但我似乎沒有得到準確的結果。我已經嘗試了市場上的Android GPS應用程序,並返回正確的結果。

到目前爲止,我有這個。

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    provider = locationManager.getBestProvider(criteria, false); 
    Location location = locationManager.getLastKnownLocation(provider); 
    VehicleListener vl = new VehicleListener(); 
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, vl); 

    if (location != null) { 
     System.out.println("Provider " + provider + " has been selected."); 
     lat =location.getLatitude(); 
     lon = location.getLongitude(); 
    } 
+0

您能否詳細說明結果如何不準確?此外,您是否在外部測試以獲得全面的GPS可視性? – Lycha

+0

我在樓上的室內測試,但它似乎給我一個閱讀從我當前位置使用網絡提供商的道路。使用GPS,它給了我一個比網絡提供商更多的閱讀。奇怪的是我正在運行一個名爲GPS追蹤器的應用程序,我發現它給出了精確的位置。 – unleashed

回答

2

您正在使用空標準。如果您希望獲得更高的準確度,請嘗試以下操作:

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_FINE); 
provider = locationManager.getBestProvider(criteria, false); 
Location location = locationManager.getLastKnownLocation(provider); 
VehicleListener vl = new VehicleListener(); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, vl); 

if (location != null) { 
    System.out.println("Provider " + provider + " has been selected."); 
    lat =location.getLatitude(); 
    lon = location.getLongitude(); 
} 
相關問題