因此,我发现了一些关于 GoogleApiClient 的东西,对我来说并不是很清楚。 GoogleApiClient 有一个名为 连接的函数,该函数在客户端为 有联系时运行(当然)。
我得到了我自己的函数: 收听,它最终是 在 GoogleApiClient 的 onConnected 上接听电话函数。
我的 StartLocationListingfunction 在没有 GoogleApiClient 连接的情况下无法运行。
代码和日志:
@Override
public void onConnected(Bundle bundle) {
log("Google_Api_Client:connected.");
initLocationRequest();
startLocationListening(); //Exception caught inside this function
}
...
private void startLocationListening() {
log("Starting_location_listening:now");
//Exception caught here below:
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
}
唯一的例外是:
03-30 12:23:28.947: E/AndroidRuntime(4936): java.lang.IllegalStateException: GoogleApiClient is not connected yet.
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.internal.jx.a(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.common.api.c.b(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at com.google.android.gms.internal.nf.requestLocationUpdates(Unknown Source)
03-30 12:23:28.947: E/AndroidRuntime(4936): at hu.company.testproject.service.GpsService.startLocationListening(GpsService.java:169)
03-30 12:23:28.947: E/AndroidRuntime(4936): at hu.company.testproject.service.GpsService.onConnected(GpsService.java:259)
...
我的调试日志还显示 连接函数被调用:
03-30 12:23:28.847: I/Locationing_GpsService(4936): Google_Api_Client:connected.
03-30 12:23:28.857: I/Locationing_GpsService(4936): initLocationRequest:initing_now
03-30 12:23:28.877: I/Locationing_GpsService(4936): initLocationRequest:interval_5000
03-30 12:23:28.897: I/Locationing_GpsService(4936): initLocationRequest:priority_100
03-30 12:23:28.917: I/Locationing_GpsService(4936): Starting_location_listening:now
在这之后,我得到了例外。
我错过了什么吗?我得到了一个“连接”的响应,我运行了我的函数,我得到了一个错误“未连接”这是什么?另外一个恼人的事情是: 我使用这个位置服务几个星期了,从来没有得到这个错误。
译者:
我添加了一个更具体的日志输出,让我大吃一惊,看看这个:
@Override
public void onConnected(Bundle bundle) {
if(mGoogleApiClient.isConnected()){
log("Google_Api_Client: It was connected on (onConnected) function, working as it should.");
}
else{
log("Google_Api_Client: It was NOT connected on (onConnected) function, It is definetly bugged.");
}
initLocationRequest();
startLocationListening();
}
在这种情况下,log 输出:
03-30 16:20:00.950: I/Locationing_GpsService(16608): Google_Api_Client:connected.
03-30 16:20:00.960: I/Locationing_GpsService(16608): Google_Api_Client: It was NOT connected on (onConnected) function, It is definetly bugged.
是的,我刚刚得到 mGoogleApiClient.isConnected() == false
里面的 onConnected()
怎么可能呢?
译者:
由于没有人可以回答这个问题,即使有声望的赏金,我决定把这个 bug 报告给谷歌。接下来发生的事情真的让我感到惊讶。 谷歌对我的报告的官方回答是:
“这个网站是针对 AOSP Android 源代码的开发者问题的 代码和开发人员工具集,而不是谷歌应用程序或服务,如 播放服务,GMS 或 Google API。不幸的是,似乎没有 是一个合适的地方报告错误与播放服务。我所能 说这个网站是不是,对不起。试试在谷歌上发布 而是产品论坛。”
完整版 请在此报到。(我希望他们不会仅仅因为它很傻就删除它)
所以,是的,我看了谷歌产品论坛,只是找不到任何主题发布这个东西,所以此刻我感到困惑和卡住了。
地球上有人能帮我吗?
译者:
面糊中的完整代码