我有一个渲染 MapView 和折线的 android 应用程序,如果我使用 IP 受限的 API 密钥,它在 Android 模拟器上运行良好,但当我在手机上运行的世博会构建的应用程序中使用 android 受限键时,它甚至可以显示地图,绝对没有折线。
我的app.json中有以下内容:
{
"expo": {
"android": {
"package": "com.company.project",
"permissions": [ "CAMERA" ],
"config": {
"googleMaps": {
"apiKey": "ACTUAL_API_KEY_HERE"
}
}
},
...
代码的方向部分如下:
const key = Constants.manifest.android.config.googleMaps.apiKey;
const resp = await fetch(`https://maps.googleapis.com/maps/api/directions/json?origin=${ startLoc }&destination=${ destinationLoc }&key=${ key }`);
const respJson = await resp.json();
我正在使用以下命令构建我的应用程序:
世博会构建:安卓
然后我从 expo.io 下载apk。
该密钥仅限于 GCP 控制台中的安卓应用。 我已经验证了我的app.json中的软件包名称与限制中的名称匹配,并且我从"expo fetch:android:hashes"命令中获得了SHA-1指纹。
正如我所说,这在模拟器(带有 IP 受限密钥(中工作正常,但在手机上运行时则不行。 我错过了什么吗?
检查您是否像这样在清单文件中使用元数据。
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />