【问题标题】:Activity Recognition and Location Client Android活动识别和位置客户端 Android
【发布时间】:2014-09-10 12:26:33
【问题描述】:

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

我想在 Activity 识别返回“IN_VEHICLE”时获取用户当前位置

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

 Call connect() and wait for onConnected

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

【问题讨论】:

  • 你能给我完整的例外吗?您是否使用(覆盖)onConnected?

标签: android android-location currentlocation activity-recognition


【解决方案1】:

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

首先,您遇到的错误是,正如我猜测的那样,没有太多代码/上下文,因为您正在尝试使用您的位置客户端 它实际连接到位置之前做某事服务,因此它要求您等待连接,然后继续执行您想要的操作。

如文档中所述 - OnConnected() :

调用connect()后,当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 并单独工作。

希望这行得通!如果有不清楚的地方请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2011-03-17
    • 1970-01-01
    相关资源
    最近更新 更多