如何解决Android Place Autocomplete意图问题?

问题描述 投票:0回答:2

我正在尝试在我的应用程序中使用谷歌放置自动完成

就像文档中描述的那样,有两种方法可以使用此功能:一种使用片段,另一种方法是使用 Intent,这就是我选择的。

我的代码如下

摇篮:

implementation 'com.google.android.libraries.places:places:2.5.0'

科特林:

第 1 部分

 btn.setOnClickListener {

            if (!Places.isInitialized()) {
                Places.initialize(
                    requireActivity().applicationContext,
                    getString(R.string.google_maps_key)
                )
            }

            @Suppress("DEPRECATION")
            startActivityForResult(
                Autocomplete
                    .IntentBuilder(
                        AutocompleteActivityMode.OVERLAY,
                        listOf(
                            Place.Field.ID,
                            Place.Field.NAME,
                            Place.Field.LAT_LNG,
                            Place.Field.ADDRESS,
                            Place.Field.ADDRESS_COMPONENTS
                        )
                    ).build(requireContext()),
                AUTOCOMPLETE_REQUEST_CODE
            )
        }

第 2 部分

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
            when (resultCode) {
                Activity.RESULT_OK -> {
                    data?.let {
                        val place = Autocomplete.getPlaceFromIntent(data)
                        Timber.i(TAG, "Place: ${place.name}, ${place.id}")
                    }
                }
                AutocompleteActivity.RESULT_ERROR -> {
                    // TODO: Handle the error.
                    data?.let {
                        val status = Autocomplete.getStatusFromIntent(data)
                        Timber.i(TAG, status.statusMessage)
                    }
                }
                Activity.RESULT_CANCELED -> {
                    // The user canceled the operation.
                }
            }
            return
        }
        super.onActivityResult(requestCode, resultCode, data)
    }

覆盖的“地点自动完成”视图显示完美,但是当我尝试用胶带粘贴键盘来搜索某个地方时,视图崩溃而不是应用程序崩溃。只有视图,我收到下面的错误(我不知道它是否相关):

set_timerslack_ns write failed: Operation not permitted

知道如何解决这个问题吗?

android google-maps google-maps-api-3 android-mapview placeautocompletefragment
2个回答
0
投票

您是否“启用”了您的 api 密钥以使用 google 地点?


0
投票

对我来说,需要启用 Places API(新)以及 Places API。检查 logcat 日志以获取可能的额外信息。

© www.soinside.com 2019 - 2024. All rights reserved.