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将解决问题...谢谢你们 –

相关问题