活动识别和位置客户端 Android

Posted

技术标签:

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

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

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

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

 Call connect() and wait for onConnected

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

【问题讨论】:

你能给我完整的例外吗?您是否使用(覆盖)onConnected? 【参考方案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 并单独工作。

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

【讨论】:

以上是关于活动识别和位置客户端 Android的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 服务活动识别断开连接且没有任何错误

android webview 客户端活动指示器

如何识别 UITableView 前导和尾随滑动操作 (ios 11) 的当前活动位置?

添加启动画面活动时“客户端尚未准备好”

确定 Android 设备中的 3G/WIFI 无线电状态机当前状态

Android Activity 不会停止服务和位置更新