0

如果内置 google-maps 应用程序是通过意图启动的,像这样

string maps = "maps.googleapis.com/maps/api/staticmap"
string addr = "center=422+Android+Blvd+10110";
string key = "key=Ab4jk3j4k34jk34jk3"

string url =  "http://" + maps + "?" + addr + "&" + key

Intent intent = new Intent(Android.Content.Intent.ActionView, Uri.Parse(url));
intent.SetClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
StartActivityForResult(intent,(int)ActivityRequestCode.Map);

是否可以在请求的 url 中指定 API 密钥,以便以与在来自 v2 MapFragment/MapActivity/MapView 的请求中使用它们时相同的方式提供服务?

我认为我所有的语法等都是正确的,因为我今天提出的第一个请求已经完成,但所有后续请求都被忽略了。就好像该服务正在执行针对我的 IP 的滥用政策。

使用 debug.keystore 文件从中提取 SHA 签名,并在清单文件中使用生成的密钥创建一个条目:

<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <application>       
        <meta-data android:name="com.google.android.maps.v2.API_KEY"
                   android:value="Ab4jk3j4k34jk34jk3" />
    </application>
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
</manifest>

由于我的请求被忽略了,我认为内置地图应用程序可能不支持带有指定键的请求。关于为什么我不能使用较新的 v2 样式 MapFragment/MapActivity(或其他任何名称)存在技术限制。

我尝试了三种键类型,两种“浏览器应用程序”和一种“安卓应用程序”:

在此处输入图像描述

谢谢你。

4

2 回答 2

1

浏览器 API 密钥与移动应用程序 API 密钥不同,因此您将无法使用从密钥库生成的 API 密钥,因为它仅适用于您的应用程序。

使用静态(浏览器)地图是没有密钥的,但是如果您在网页上的特定域上显示地图,则需要使用 API 密钥。

于 2013-08-27T09:29:01.577 回答
0

Google Maps v2 - Intent URI 参数

于 2013-09-18T14:34:56.893 回答