2

林。當使用IM「PRIORITY_BALANCE_ACCURACY」一切都沒有問題,和位置更新的預期,但在即時通訊使用「PRIORITY_HIGH_ACCURACY」的位置,就停止更新....我甚至試過alarmreceiver但使用「PRIORITY_HIGH_ACCURACY」的結果還是一樣,每次IM位置不會更新處於睡眠模式時......但是當我打開屏幕,我得到的位置更新...的Android使用融合位置提供我的後臺服務,以獲得結果我嘗試使用onLocationChanged並使用掛起的意圖的廣播接收器還試圖融合位置提供商停止更新在休眠模式下

我真的需要精確的位置......甚至當屏幕關閉任何幫助,將不勝感激... 。

回答

0

如果不是太適合你,爲什麼不使用谷歌的定位服務嘗試:

上app.gradle:

compile 'com.google.android.gms:play-services-location:9.0.2' 

和活動:

locationRequest = new LocationRequest() 
         .setFastestInterval(5000) 
         .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) 
         .setSmallestDisplacement(10); 


       GoogleApiClient.Builder clientBuilder = new GoogleApiClient.Builder(ActivityName.this) 
         .addApi(LocationServices.API) 
         .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { 
          @Override 
          public void onConnected(@Nullable Bundle bundle) { 
           Log.e(TAG,"API CLIENT CONNECTED"); 
           startLocationUpdates(); 
          } 

          @Override 
          public void onConnectionSuspended(int i) { 
           Log.e(TAG,"API CLIENT SUSPENDED"); 
          } 
         }) 
         .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() { 
          @Override 
          public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
           Log.e(TAG,"API CLIENT CONNECTION FAILED"); 
          } 
         }); 

       apiClient= clientBuilder.build(); 
       apiClient.connect(); 

,這是位置更新的開始,谷歌客戶端連接後:

void startLocationUpdates(){ 
    if(apiClient!=null && apiClient.isConnected()) { 
     LocationServices.FusedLocationApi.requestLocationUpdates(apiClient, locationRequest, ActivityName.this); 
     Log.e(TAG, "Location Updates started"); 
    } 
} 

也確保活動實現LocationListener的,這樣就可以聽到您的位置更新:

@Override 
public void onLocationChanged(Location updatedLocation) { 
    Log.e(TAG,"LOCATIONUPDATE: "+updatedLocation.toString()); 
} 
+1

我已經在使用它,但是當d evice閒置不更新.... –

+2

如果你需要的設備永遠醒着,看看激活鎖定策略從https://developer.android.com/training/scheduling/wakelock.html – MetaSnarf

+0

是,metasnarf加上wakelock將解決問題...謝謝你們 –

相關問題