2013-04-26 145 views
0

我一直在将我的Android Java应用程序从Googlemaps V1升级到V2,这很痛苦。我需要在程序上完成所有显示(即没有XML布局文件),因为它是我开发的跨平台引擎。Android Google地图V2 API密钥查询?

在V1,我可以通过

String apikey = MySettings.getMapsKey(); 
MapView mapView = new MapView(activity, apikey); 

这是创造优良的MapView时设置的API密钥,因为我可以建立许多应用程序都具有不同的证书进行签名,只是给它不同的数据文件工作。

看起来你必须通过

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

设置在清单文件中的API密钥现在这样的两个问题是

  • 是我的假设正确的,MapView的是仅适用于谷歌地图V1这样我必须抛弃它并开始使用MapFragment来支持Google地图V2?
  • 如果我们现在必须使用MapFragment,是否有任何方法来程序设置此密钥而不是嵌入代码/清单中?
+2

第一个问题的答案是你没有选择,而不是使用MapFragment..painful但是真的..! – TheFlash 2013-04-26 10:13:07

+0

地图Android API v2还提供了一个MapView对象(当然,它与API v1中的MapView不同)。 – Nevermore 2013-04-26 22:24:42

回答

2

1)是的,有没有其他选择比使用MapFragment(使用SupprotMapFragment为API [V4-V10])

2)有没有其他方式(至少有文件记载),而不是从Manifest设置API密钥。在代码中获得元数据是可能的,并且使用反射设置为MapFragment,但是源被关闭并且不值得付出努力。

什么可以让你更失望,标记InfoWindow是静态的,你不能设置按钮或动态视图(例如ProgressBar)。 但通常我比v1更喜欢它。