2011-03-23 49 views
0

我在仿真器上有一個工作應用程序,但是當我嘗試在手機上時,它沒有。 在模擬器上,我發一個假的位置到手機並使用此代碼收到它沒有問題:GPS在我的Android手機上無法正常工作

private class GPSListener implements LocationListener{ 
    private ProgressDialog waitingDialog; 
    public GPSListener(Context c) { 
     this.waitingDialog = ProgressDialog.show(c, "", c.getString(R.string.sWaitingMessage), true); 
    } 
    @Override 
    public void onLocationChanged(Location loc){ 
     int longitude = (int) Math.round(loc.getLongitude() * 1000000); 
     int latitude = (int) Math.round(loc.getLatitude() * 1000000); 
     this.waitingDialog.dismiss(); 
     GeoPoint currentLocation = new GeoPoint(latitude, longitude); 
     GPSPosition.this.whenPositionFound(currentLocation); 
    } 
    @Override 
    public void onProviderDisabled(String provider){} 
    @Override 
    public void onProviderEnabled(String provider){} 
    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) {} 
} 

然而,當我嘗試我的手機上,onLocationChanged()不會被調用。 我激活與這個GPS搜索:

LocationManager locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    GPSListener gpsListner = new GPSListener(c); 
    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, gpsListner); 

,這裏是我的日誌,充滿了這一點:

03-23 14:04:28.411: VERBOSE/GpsLocationProvider(148): SV count: 0 ephemerisMask: 0 almanacMask: ffffffff 
03-23 14:04:28.411: DEBUG/RPC(148): written RPC packet size: [24] 
03-23 14:04:28.421: DEBUG/RPC(148): read RPC packet 
03-23 14:04:28.431: DEBUG/RPC(148): read RPC packet size: [284] 
03-23 14:04:28.431: VERBOSE/libgps(148): DeferredActionThread pthread_cond_wait returned 
03-23 14:04:28.431: DEBUG/RPC(148): written RPC packet size: [24] 
03-23 14:04:28.431: DEBUG/RPC(148): read RPC packet 
03-23 14:04:28.431: DEBUG/RPC(148): read RPC packet size: [284] 
03-23 14:04:28.431: VERBOSE/libgps(148): DeferredActionThread pthread_cond_wait returned 
03-23 14:04:28.431: DEBUG/RPC(148): written RPC packet size: [24] 
03-23 14:04:28.441: DEBUG/RPC(148): read RPC packet 
03-23 14:04:28.441: DEBUG/RPC(148): read RPC packet size: [284] 
03-23 14:04:28.441: VERBOSE/libgps(148): DeferredActionThread pthread_cond_wait returned 
03-23 14:04:28.441: DEBUG/RPC(148): written RPC packet size: [24] 
03-23 14:04:28.451: DEBUG/RPC(148): read RPC packet 
03-23 14:04:28.451: DEBUG/RPC(148): read RPC packet size: [284] 

我在做什麼錯?我嘗試了內部/外部,谷歌地圖甚至在我家裏也很快找到我。

+1

設備上是否啓用GPS? – 2011-03-23 13:40:25

+0

是的,當我發送一個虛擬位置時,信號在仿真器上的「頂欄」上觸發。我的手機在Google地圖上的GPS功能非常棒。 – Swan 2011-03-23 13:44:18

+0

你有沒有試穿標準?因爲最後的LocationProvider可能不是你的GPS。 – papachan 2011-03-23 14:01:03

回答

0

正確檢測GPS座標始終是Android中的一個問題。在嘗試了很多東西之後,我終於看到Android camera app是如何將座標嵌入點擊圖像的。最好的辦法是註冊NETWORK_PROVIDER和GPS_PROVIDER,並在請求位置更新時將minDistance保持爲0。

通常需要一些時間才能獲得GPS定位,因此如果您的活動中的某些內容取決於位置,請在每隔250毫秒後檢查一次位置。

要獲取位置,請首先檢查您是否有GPS定位,然後從網絡提供商處獲得修復。

相關問題