如何在 android 中动态给地图 api 键
How to give map api key dynamically in android
我的 android 应用程序中有一个用例,我的应用程序的用户必须提供 API 密钥才能使用地图。
但我看到我必须在清单文件中提供 API 键。我无法在运行时编辑它。
是否有任何其他方法可以将地图 API 键动态地提供给 google 地图(我正在使用 MapView)或任何动态更改元数据值的方法
不幸的是,这似乎根本不可能。
Google 文档
https://developers.google.com/maps/documentation/android-sdk/get-api-key#add_key 严格讲manifest 和如何把key 添加到local.properties
:
Open the local.properties in your project level directory, and then add the following code. Replace YOUR_API_KEY with your API key.
MAPS_API_KEY=YOUR_API_KEY
然后从清单中引用它:
In your AndroidManifest.xml file, go to com.google.android.geo.API_KEY and update the android:value attribute as follows:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${MAPS_API_KEY}" />
已弃用并已删除构造函数
显然,很久以前确实有一种方法可以在手动实例化 MapView
对象时注入密钥(即不使用布局 xml):
mMapView = new MapView(this, mapApiKey);
但是,此构造函数已被删除,您不能再提供 API 键:
https://developers.google.com/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/MapView?hl=en#public-constructor-summary
MapView(Context context)
MapView(Context context, AttributeSet attrs)
MapView(Context context, AttributeSet attrs, int defStyle)
MapView(Context context, GoogleMapOptions options)
我的 android 应用程序中有一个用例,我的应用程序的用户必须提供 API 密钥才能使用地图。
但我看到我必须在清单文件中提供 API 键。我无法在运行时编辑它。
是否有任何其他方法可以将地图 API 键动态地提供给 google 地图(我正在使用 MapView)或任何动态更改元数据值的方法
不幸的是,这似乎根本不可能。
Google 文档
https://developers.google.com/maps/documentation/android-sdk/get-api-key#add_key 严格讲manifest 和如何把key 添加到local.properties
:
Open the local.properties in your project level directory, and then add the following code. Replace YOUR_API_KEY with your API key.
MAPS_API_KEY=YOUR_API_KEY
然后从清单中引用它:
In your AndroidManifest.xml file, go to com.google.android.geo.API_KEY and update the android:value attribute as follows:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
已弃用并已删除构造函数
显然,很久以前确实有一种方法可以在手动实例化 MapView
对象时注入密钥(即不使用布局 xml):
mMapView = new MapView(this, mapApiKey);
但是,此构造函数已被删除,您不能再提供 API 键: https://developers.google.com/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/MapView?hl=en#public-constructor-summary
MapView(Context context)
MapView(Context context, AttributeSet attrs)
MapView(Context context, AttributeSet attrs, int defStyle)
MapView(Context context, GoogleMapOptions options)