如何以编程方式更改 PlaceAutocomplete api 键

How to change PlaceAutocomplete api key programmatically

我正在使用 PlaceAutocomplete 搜索位置。现在我已经集成了 PlaceAutocomplete 进行搜索,现在我通过它获取位置,现在我在清单文件中使用 <meta-date> 设置 Google Places Api key,比如

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

这是显示搜索屏幕的代码。

        try {
            Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN).build(this);
            startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
        } catch (GooglePlayServicesRepairableException e) {
            // TODO: Handle the error.
        } catch (GooglePlayServicesNotAvailableException e) {
            // TODO: Handle the error.
        }

现在,当我从服务器 API 响应中获得新的 API 密钥时,我想更改 Google Places Api key。那么 是否可以使用代码更改 API 密钥?

不,您不能以编程方式更改 <meta-data>。它只能在编译时设置。

How to change PlaceAutocomplete API key programically

无法以编程方式更改 PlaceAutocomplete API 密钥

as documentation suggest 必须使用 Manifest 文件分配 API 键:

更多信息请阅读Get an API key from the Google API Console

不,现在无法以编程方式设置它。

Google 文档:

To access the Google Maps servers with the Maps API V2, you have to add a Maps API key to your application.... Add the key to your application by adding an element to your application's AndroidManifest.xml file.

仔细阅读,注意非常非常清楚,除了这个你没有办法使用其他东西:

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

如需更多说明,请阅读: Google Maps Android API v2