2013-07-22 104 views
0

我正在使用新的FusedLocationService,但儘管我在室內獲取了經度和緯度,但我沒有看到GPS信號正在獲取(通知欄中的小gps點不是出現)。FusedLocationService不支持Android中的GPS信號

我使用的是從here適應位置服務的例子

我不明白的是爲什麼沒有被搜索,儘管GPS GPS信號有效(但我得到的座標,我想我讓那些來自WiFi或手機ID)

在我的應用類我創建了一個服務(這是一個ServicesManager,這反過來又創造另一個服務(檢索位置)。我要送的上下文LocationClient的ServicesManager因爲它是一個背景(因爲它是一個服務)。

在此先感謝。 illermo。

UPDATE 如果同時啓用GPS我沒有得到位置在所有我關閉定位服務在手機上使用無線網絡選項。因此,FusedLocationService和GPS正在發生一些事情。

我會添加代碼,以便它可以更好地理解

應用類我使用的是從本地服務例如:here

private ServicesManager mBoundService; 
    private boolean mIsBound; 

    private ServiceConnection mConnectionToServicesManager = new ServiceConnection() { 

     public void onServiceConnected(ComponentName className, IBinder service) { 
      mBoundService = ((ServicesManager.LocalBinder)service).getService(); 

    servicesManager = mBoundService; 
     } 

     public void onServiceDisconnected(ComponentName className) { 
      mBoundService = null; 
     } 
    }; 

    void doBindServiceManagerService() { 
     bindService(new Intent(this, ServicesManager.class), mConnectionToServicesManager, Context.BIND_AUTO_CREATE); 
     mIsBound = true; 
    } 

    void doUnbindService() { 
     if (mIsBound) { 
      unbindService(mConnectionToServicesManager); 
      mIsBound = false; 
     } 
    } 

然後ServicesManager延伸服務,並在構造函數我在寫這個:

fusedLocationService = new FusedLocationService(this); 

然後我打電話:

fusedLocationService.startListeningLocationUpdates(this); 

這是startListeningLocationUpdates的實施FusedLocationService

public boolean startListeningLocationUpdates(Context context) { 
    if (!GdpTesisApplication.IsGooglePlayServicesAvailable) { 
     return false; 
    } 

    mDetectionRequester.requestUpdates(); 
    FusedLocationService.IsServiceRunning = true; 
    return true; 
} 

而且requestUpdates()嘗試connecto到GooglePlayServices

private void requestConnection() { 
    getFusedLocationClient().connect(); 
} 

@Override 
public void onConnected(Bundle arg0) { 
    continueRequestLocationUpdates(); 
} 

private void continueRequestLocationUpdates() { 
    locationrequest = LocationRequest.create(); 
    locationrequest.setInterval(LocationUtils.DETECTION_INTERVAL_MILLISECONDS); 

    getFusedLocationClient().requestLocationUpdates(locationrequest, createRequestPendingIntent()); 
} 

private PendingIntent createRequestPendingIntent() { 
    if (null != getRequestPendingIntent()) { 
     return mFusedLocationPendingIntent; 
    } else { 
     Intent intent = new Intent(mContext, FusedLocationIntentService.class); 
     PendingIntent pendingIntent = PendingIntent.getService(mContext, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     setRequestPendingIntent(pendingIntent); 
     return pendingIntent; 
    } 
} 

最後我有一個IntentService,其中onHandleIntent提取S中的位置,並顯示它:

Location location = intent.getParcelableExtra(LocationClient.KEY_LOCATION_CHANGED); 

我不知道爲什麼GPS不能正常工作。任何想法?

回答