Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
活动识别和定位客户端Android_Android_Android Location_Currentlocation_Activity Recognition - Fatal编程技术网

活动识别和定位客户端Android

活动识别和定位客户端Android,android,android-location,currentlocation,activity-recognition,Android,Android Location,Currentlocation,Activity Recognition,我很难同时使用Activity Recognition和LocationClient获取当前位置 我想在活动识别返回“IN_VEHICLE”时获取用户的当前位置 但当我尝试连接我的位置客户端时,它会给我这样的错误 Call connect() and wait for onConnected 关于如何使用活动识别获取用户的当前位置,有什么想法吗 我希望我的答案是正确的:) 首先,正如我在没有太多代码/上下文的情况下猜测的那样,您遇到的错误是,因为您试图在您的位置客户端实际连接到位置服务之前对

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

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

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

 Call connect() and wait for onConnected

关于如何使用活动识别获取用户的当前位置,有什么想法吗

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

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

如文档-OnConnected()中所述:

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

要在连接后执行其他操作,您可以在活动中设置一个标志-isConnected-或者只需使用mLocationClient.isConnected(),该标志将在连接与否时返回

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

请注意LocationClient和ActivityRecognition已被弃用,您现在应该使用GoogleAppClient。类似于(如中所示 ):

如文档中所述,您可以将多个API添加到此GoogleAppClient,因此您可以只使用一个客户端,同时使用LocationServices.API和ActivityRecognition.API,也可以使用不同的客户端,每个客户端都有一个API并单独工作


希望这能奏效!如果有不清楚的地方请告诉我

您能给我一个完整的例外吗?您是否使用(覆盖)onConnected?
GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(LocationServices.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();