placeautocomplete 结果代码 = 2

placesautocomplete result code = 2

我正在尝试通过 intentBuilder 创建意图来实现 google Places API(Places Autocomplete)。我的应用通过单击按钮成功获得了 intent,但无法搜索地点。

在覆盖 onActivityResult 时,它得到 resultCode = 2 而不是 RESULT_SUCCESS、RESULT_ERROR 或 RESULT_CANCELLED,然后返回到 MainActivity。

我参考了https://developers.google.com/places/android-api/autocomplete 并添加了一个依赖项

compile 'com.google.android.gms:play-services-places:9.2.0' 

这是我的代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PLACE_AUTOCOMPLETE_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Place place = PlaceAutocomplete.getPlace(this, data);
            Log.i(TAG, "Place: " + place.getAddress());
        } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) {
            Status status = PlaceAutocomplete.getStatus(this, data);
            // TODO: Handle the error.
            Log.i(TAG, status.getStatusMessage());

        } else if (resultCode == RESULT_CANCELED) {
            Log.i("message", "the user cancelled the operation" );            }
    }
}

我需要一些帮助,请帮忙。

只需检查一次您的 Manifest 文件,也许您尝试做错了...

而不是这个标签:

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="your_key"/>

添加此标签:

<meta-data            
    android:name="com.google.android.geo.API_KEY"
    android:value="your_key" />

希望这对您有用!!

由于代码是正确的,看来您的 API_KEY 中可能存在一些错误。 请重新检查 API_KEY,是否使用了正确的 SHA-1 指纹来生成 API_KEY,同时不要忘记检查您是否已从开发者控制台为项目。如果所有这些都是正确的并且您仍然遇到同样的错误,请将日志发送给我。

希望这对您有所帮助。 :)

一段时间后我找到了解决方案-

问题 - returns resultCode 2

中的 onActivityResult

解决方案 - 1. 这通过在开发者控制台中启用 "Places API for Android" 而不仅仅是 "Places API" 来解决。

  1. 如果您的 API 密钥有误,也会发生这种情况