活动识别和位置客户端Android

时间:2014-07-19 13:04:52

标签: android android-location currentlocation activity-recognition

我很难使用Activity Recognition和LocationClient来获取当前位置。

我想在活动识别返回“IN_VEHICLE”

时获取用户当前位置

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

 Call connect() and wait for onConnected

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

1 个答案:

答案 0 :(得分:0)

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

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

如文档中所述 - OnConnected():

  

调用connect()后,当连接请求有异步时,将异步调用此方法       已成功完成 此回调后,应用程序可以对其他方法发出请求       由客户提供[...]

要在连接后执行其他操作,您可以在活动中设置一个标记 - isConnected - 或者您可以使用mLocationClient.isConnected(),如果它已连接,它将返回。

关于问题,只需使用活动识别功能,您就无法获取位置,只能获取状态(活动)。但您仍然可以同时使用LocationClient和ActivityRecognition。

请注意,不推荐使用LocationClient和ActivityRecognition,现在应该使用GoogleApiClient。类似的东西(如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和ActivityRecognition.API,也可以拥有不同的客户端,每个客户端都有一个API并单独工作。

希望这有效!如果事情不清楚,请告诉我