我很难使用Activity Recognition和LocationClient来获取当前位置。
我想在活动识别返回“IN_VEHICLE”
时获取用户当前位置但是当我尝试连接我的位置客户端时,它会给我这样的错误
Call connect() and wait for onConnected
有关如何使用活动识别获取用户当前位置的任何想法?
答案 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并单独工作。
希望这有效!如果事情不清楚,请告诉我