API-ключ Google Place не работает для приложений Android - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь получить место с помощью ключей API места.Те же ключи API работают нормально для MAP, но не работают для Place Picker.

Вот поток кода, что я делаю ....

  1. Включено Maps SDK for Android
  2. Включено Places API

Kye ограничен как упоминание в документе Google с помощью applicationId и SHA1.

Код файла Gradle app.gradle -

implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.firebase:firebase-core:16.0.7'

Сейчас AndroidManifest.xml

<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" />

Этот метатег находится внутри Application TAG

Теперь вот моя Activity code

btnLocation!!.setOnClickListener {
        val builder = PlacePicker.IntentBuilder()
        try {
            startActivityForResult(builder.build(this), placePickerRequestCode)
        }catch (e : GooglePlayServicesNotAvailableException){
            e.printStackTrace()
        }catch (e : GooglePlayServicesRepairableException){
            e.printStackTrace()
        }
    }

Результирующая функция onActivityResult

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (requestCode == placePickerRequestCode) {
        if (resultCode == Activity.RESULT_OK) {
            val place = PlacePicker.getPlace(data!!, this)
            lat = place.latLng!!.latitude
            long = place.latLng!!.longitude
            tvLocation!!.text = place.name
        } else {
            Log.d(TAG, "ERROR_RES_CODE $resultCode")
            Log.d(TAG, "ERROR $data")
        }
    }
}

Здесь я получаю всегда ERROR_RES_CODE 2 и ERROR null

Пожалуйста, попробуйте найти ошибку в том, что я делаю в этом.Я буду очень благодарен всем!

1 Ответ

1 голос
/ 09 марта 2019

Во-первых, вы не используете правильную зависимость. По состоянию на 6 недель назад, вы бы хотели использовать это:

реализация 'com.google.android.gms: места для play-services: 16.0.0'

Но эта версия API Адресов устарела. Теперь вы должны использовать это:

реализация 'com.google.android.libraries.places: мест: 1.0.0'

Кроме того, PlacePicker устарел и перестанет работать в июне. Так что вам даже не стоит его использовать:

https://developers.google.com/places/android-sdk/client-migration

Если вам нужно что-то похожее на часть карты PlacePicker, это довольно легко скопировать с помощью карты и класса Geocoder. Если вы хотите разместить автозаполнение, вам нужно использовать один из этих примеров и заплатить Google выкуп, потому что больше нет бесплатного способа сделать это:

https://github.com/googlemaps/android-places-demos

...