Android Google地址自动填充PendingResult等待着永远

时间:2015-04-30 15:30:22

标签: java android google-maps google-maps-android-api-2 google-geocoding-api

我和我的项目团队成员正在尝试使用google API for android获取自动填充地址。 到目前为止,我们试图用一个单词来测试它,而不用担心在autoCompleteView中添加一个监听器。无论如何,我们无法进行第一次测试工作。 我们的GoogleAPIClient设置如下:

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Places.GEO_DATA_API)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();
    mGoogleApiClient.connect(); 

我们有一个连接侦听器,如下所示:

@Override
public void onConnected(Bundle connectionHint) {
    new GetPredictions().execute("boulevard");
}

而且,最后(好吧,不是最后,但这是我们的代码在等待中被阻止之前),我们的AsyncTask类GetPredictions有一个doInBackground方法,如下所示:

    @Override
     protected AutocompletePredictionBuffer doInBackground(String... test) {

        LatLng sudOuestLyon = new LatLng(45.708931, 4.745801);
        LatLng nordEstLyon = new LatLng(45.805918, 4.924447);
        LatLngBounds rectangleLyon = new LatLngBounds(sudOuestLyon, nordEstLyon);

        PendingResult<AutocompletePredictionBuffer> results  =
                Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient, test[0],
                        rectangleLyon, null);
        AutocompletePredictionBuffer autocompletePredictions = results
                .await();

        return autocompletePredictions;
    }

经过调试,我们发现我们陷入了“等待”(时间限制版本超时)。我们尝试给它一些时间(几分钟),但应用程序没有通过这种方法。研究区(rectangleLyon)是一个矩形,覆盖法国里昂市和一些周围环境。这不是一个区域,并没有太多的林荫大道,所以我们认为在其中搜索“林荫大道”会很快返回结果。我们怀疑我们的GoogleApiClient可能没有正确配置,但它可以连接,因为我们传入的方法只能通过OnConnected调用,而错误的请求不会首先返回PendingResult,对吧?

为什么此代码卡在results.await()

1 个答案:

答案 0 :(得分:0)

因此,经过更多搜索后,问题是清单中的自动行声明了密钥。关键声明需要有&#34;机器人:名称=&#34; com.google.android.geo.API_KEY&#34;而不是最初在那里的名字。