因此,我发现关于GoogleApiClient的事情我不太清楚。 GoogleApiClient具有称为onConnected的功能,该功能在客户端连接时运行(确定)。
我有自己的函数:startLocationListening,最终在GoogleApiClient的onConnected函数上被调用。
因此,如果没有GoogleApiClient连接,我的startLocationListening函数将无法运行。
代码和日志:
@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)
...
我的调试日志还说onConnected函数被调用为:
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
在此之后,我得到了例外。
我在这里想念什么吗?我收到了关于“已连接”的响应,我运行了func,并且收到了“未连接”错误,这是什么?再加上一个令人讨厌的事情是:我已经使用了数周的位置服务,但从未收到此错误。
编辑:
我添加了更具体的日志输出,这让我很惊讶,请检查以下内容:
@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();
}
在这种情况下的日志输出:
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()
怎么可能?
编辑:
由于没有人甚至可以凭借声誉悬赏来回答这个问题,因此我决定将其作为错误报告给Google。接下来发生的事情令我惊讶。Google对我的报告的官方回答:
“该网站针对的是与AOSP Android源代码和开发人员工具集有关的开发人员问题,而不是针对Google应用或服务(例如Play服务,GMS或Google API)的问题。不幸的是,似乎没有合适的位置报告Play服务的错误我只能说不是这个网站,抱歉。请尝试在Google产品论坛上发布。”
完整的问题报告在这里。(我希望他们不会因为愚蠢而将其删除)
是的,我看了Google产品论坛,却找不到任何可发布此内容的主题,所以此刻我感到困惑和困惑。
行星上的任何人都可以帮助我吗?
编辑:
pastebin中的完整代码