我正在使用新的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不能正常工作。任何想法?