如果内置 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(或其他任何名称)存在技术限制。
我尝试了三种键类型,两种“浏览器应用程序”和一种“安卓应用程序”:
谢谢你。