2011-11-07 55 views
1

我的測試應用程序,發現設備的當前位置在模擬器中工作正常。也就是說,當我在eclipse中的DDMS中,我將位置座標發送給模擬器​​,應用捕獲廣播並在模擬器中顯示地圖中的位置。但在我真正的2.3.3安卓設備中,應用只是在gps在通知欄中閃爍時掛起。這是我在我的服務班位置服務不工作在一個真正的Android設備

public void onStart(Intent intent, int startId) { 
    super.onStart(intent, startId); 
    Log.e("<<MyGpsService-onStart>>", "GPS starting..."); 
    triggerService = new Thread(new Runnable() { 
     public void run() { 
      try { 
       Looper.prepare(); 
       lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
       myLocationListener = new GPSListener(); 
       long minTime = 10000; // frequency update: 10 seconds 
       float minDistance = 50; // frequency update: 50 meter 
       lm.requestLocationUpdates(
         // request GPS updates 
         LocationManager.GPS_PROVIDER, minTime, minDistance, 
         myLocationListener); 
       Looper.loop(); 
      } catch (Exception e) { 
       Log.e("MYGPS", e.getMessage()); 
      } 
     }// run 
    }); 
    triggerService.start(); 
} 
class GPSListener implements LocationListener { 
    public void onLocationChanged(Location location) { 
     double latitude = location.getLatitude(); 
     double longitude = location.getLongitude(); 

     Intent myFilteredResponse = new Intent(GPS_FILTER); 
     myFilteredResponse.putExtra("latitude", latitude); 
     myFilteredResponse.putExtra("longitude", longitude); 
     Log.e(">>GPS_Service<<", "Lat:" + latitude + " lon:" + longitude); 

     sendBroadcast(myFilteredResponse); 
    } 

    public void onProviderDisabled(String provider) { 
    } 

    public void onProviderEnabled(String provider) { 
    } 

    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
};// GPSListenerclass 

我不知道你們中是否有類似的問題。謝謝。

更新:我也跟着下面的問題和答案:

Android - Reliably getting the current location

變更後,該應用程序是工作好了很多。

+1

當GPS閃爍時,表示您沒有GPS鎖定(通常來自信號不好)。你試過站在外面等着拿鎖嗎?一旦你這樣做,GPS圖標將停止閃爍並變得穩定。 – dymmeh

+1

感謝您的評論。現在我正在獲取錯誤位置的座標。地圖上的位置離這裏5英里遠。也許這又是一個信號問題。但是,當我嘗試谷歌地圖,它顯示正確的地方。 –

+0

您應該創建一些門檻並持續聆聽,直到您的位置落入其中(即location.getAccuracy())。然後停止聽取位置。 – Damian

回答

2

您是否在設備的logcat中獲得任何有趣的內容?您可以使用adb查看實際設備的logcat。

2

GPS在建築物內不起作用。 DDMS位置僅適用於模擬器

相關問題