首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google place自动完成活动立即自动关闭

google place自动完成活动立即自动关闭
EN

Stack Overflow用户
提问于 2018-01-23 15:43:27
回答 7查看 4.3K关注 0票数 0

我在我的应用程序中使用了google place api的place自动完成功能,但它会立即自动关闭。我尝试了片断和活动,但两者都很接近。

片段代码:

代码语言:javascript
复制
  PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment)
            getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(Place place) {
            // TODO: Get info about the selected place.
        }

        @Override
        public void onError(Status status) {
            // TODO: Handle the error.
        }
    });

活动代码:

代码语言:javascript
复制
public void findPlace(View v) {
    try {
        Intent intent =
                new PlaceAutocomplete
                        .IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN)
                        .build(this);
        startActivityForResult(intent, 1);
    } catch (GooglePlayServicesRepairableException e) {
        // TODO: Handle the error.
    } catch (GooglePlayServicesNotAvailableException e) {
        // TODO: Handle the error.
    }
}

// A place has been received; use requestCode to track the request.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
            // retrive the data by using getPlace() method.
            Place place = PlaceAutocomplete.getPlace(this, data);
            //Log.e("Tag", "Place: " + place.getAddress() + place.getPhoneNumber());

           // cLocation.setText(place.getName()+",\n"+
                 //           place.getAddress() +"\n" + place.getPhoneNumber());

        } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) {
            Status status = PlaceAutocomplete.getStatus(this, data);
            // TODO: Handle the error.
            //Log.e("Tag", status.getStatusMessage());

        } else if (resultCode == RESULT_CANCELED) {
            // The user canceled the operation.
        }
    }
}

当我点击按钮新的活动打开但突然关闭,有什么原因吗?

日志错误:

代码语言:javascript
复制
01-23 13:19:55.614 904-2734/? E/Volley: [146] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/placesandroid/v1/autocompleteWidget?key=AIzaSyDBQ4zMPX740wUMlIyv6KMrjIY3hj2GN2Y
01-23 13:19:55.624 904-5307/? E/Places: Places API for Android does not seem to be enabled for your app. See https://developers.google.com/places/android/signup for more details.
01-23 13:19:55.625 904-5307/? E/AsyncOperation: serviceID=65, operation=AutocompleteWidgetQuota
                                                OperationException[Status{statusCode=PLACES_API_ACCESS_NOT_CONFIGURED, resolution=null}]
                                                    at anjf.b(:com.google.android.gms@11951034:1)
                                                    at anis.a(:com.google.android.gms@11951034:7)
                                                    at qez.run(:com.google.android.gms@11951034:11)
                                                    at kdf.run(:com.google.android.gms@11951034:26)
                                                    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                    at kiq.run(:com.google.android.gms@11951034)
                                                    at java.lang.Thread.run(Thread.java:841)
01-23 13:19:55.626 11046-11046/? E/Places: Autocomplete widget closing due to PLACES_API_ACCESS_NOT_CONFIGURED
01-23 13:20:22.732 21633-21633/? E/cutils-trace: Error opening trace file: No such file or directory (2)
01-23 13:20:22.914 21633-21633/? E/memtrack: Couldn't load memtrack module (No such file or directory)
01-23 13:20:22.914 21633-21633/? E/android.os.Debug: failed to load memtrack module: -2
01-23 13:20:26.396 689-961/? E/Sensors: new acc setDelay handle(0),ns(20000000) err! go to hwmsen
01-23 13:20:26.421 904-1275/? E/CellLocation: create GsmCellLocation
01-23 13:20:27.002 689-700/? E/Sensors: new acc setDelay handle(0),ns(66667000) err! go to hwmsen

我使用谷歌地图api和manifest:

代码语言:javascript
复制
     <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
EN

回答 7

Stack Overflow用户

发布于 2019-05-21 14:36:41

您可能需要初始化位置

代码语言:javascript
复制
// Initialize Places.
    if (!Places.isInitialized()) {
        Places.initialize(getApplicationContext(),"Your API KEY");
    }
票数 1
EN

Stack Overflow用户

发布于 2020-09-08 21:13:33

看起来这个错误是由于在Google Cloud中没有启用计费。尝试设置帐单,它将解决。

票数 1
EN

Stack Overflow用户

发布于 2018-01-23 15:57:11

根据您的错误,Places 配置不正确。

按照以下步骤进行配置

https://developers.google.com/places/android-api/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48396524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档