活动识别和定位客户端Android



我很难使用活动识别和LocationClient来获取当前位置。

当活动识别返回"IN_VEHICLE"时,我想获取用户当前位置

但是当我尝试连接我的位置客户端时,它会给我这样的错误

 Call connect() and wait for onConnected

关于如何使用活动识别获得用户当前位置的任何想法?

希望我的回答是正确的:)

首先,你得到的错误是,因为我猜没有太多的代码/上下文,因为你试图做一些事情与你的位置客户端之前它实际上已经连接到位置服务,因此它要求你等待它连接,然后继续你想要的。

如文档中所述- OnConnected():

在调用connect()之后,当connect请求已调用时,将异步调用此方法成功地完成了这个回调之后,应用程序可以对其他方法发出请求由客户提供[…]

一旦它连接,你可以在你的活动中设置一个标志- isConnected -或者你可以使用mLocationClient.isConnected(),如果它连接与否,它将返回。

关于你的问题,只是与活动识别你不应该能够得到的位置,只是状态(活动)。但是你仍然可以同时使用LocationClient和ActivityRecognition。

请注意LocationClient和ActivityRecognition已被弃用,您现在应该使用googleapicclient。如https://developer.android.com/google/auth/api-client.html所示):

GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(LocationServices.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();

如文档中所述,您可以向此GoogleApiClient添加多个api,因此您可以只有一个客户端使用两个LocationServices。API和活动识别。API,或者可能有不同的客户端,每个客户端都有一个API并单独工作。

希望这有效!如果有什么不清楚的,请告诉我

最新更新