2013-07-11 40 views
4

是否有可能以编程方式设置API v2密钥而不是在AndroidManifest文件中设置此值?是否可以通过编程方式设置Android Maps API v2密钥?

我能用API v1键做到这一点,但我无法在MapView中找到一些方法构造函数来使用当前API执行此操作。

+0

你为什么要动态地设置呢? –

+0

这是一个奇怪的要求,因为他们(客户)想自己签署和设置API密钥。我只提供了一个未签名的apk。 – IsaacCisneros

回答

0

根据谷歌的文档:

一旦你有一个地图API密钥,你需要从一个特殊的属性引用它 - 安卓:apiKey - 在XML布局的MapView元素。 如果您直接从代码实例化MapView,则应在MapView构造函数中传递Maps API键。

因此,使用mapsView的构造函数传递您的API密钥。 请查看this link进一步信息

编辑

这里是你的问题的代码片段:

@Override 
protected void onCreate(Bundle arg0) { 
    super.onCreate(arg0); 
    String mapApiKey = <your choice logic here> 
    mMapView = new MapView(this, mapApiKey); 
    setContentView(mMapView); 
} 
+2

没有这样的构造函数com.google.android.gms.maps.MapView类存在。 – IsaacCisneros

+0

看看我的编辑 – Ranco

+5

你的代码适用于com.google.android.maps.MapView而不是com.google.android.gms.maps.MapView(它们是两个不同的类!) – IsaacCisneros

0

使用此结构MapView的

公众的MapView的( android.content.Context续分机,java.lang.String中apiKey)

参数:

上下文 - 甲MapActivity对象。

apiKey - Google Maps API密钥。请参阅获取Maps API密钥以获取完整信息。

+0

请阅读我在Ranco的回答中的评论 – IsaacCisneros

1

在APK文件直接更改地图API v2的关键是可能的。

只需编写一个脚本:解压的APK,编辑二进制AndroidManifest更换规定值(例如XXXXXXX ...)用给定的密钥,拉链它放回.apk文件。

之后,您通常可以签署APK。

+0

此解决方案对我无效,因为我不打算签署该应用程序,也不知道API密钥。但是这是一个有用的答案。我要更新我的问题。 – IsaacCisneros

+0

我想在这个问题上接受你的回答http://stackoverflow.com/q/17594737/1082344 – IsaacCisneros

+0

@IsaacCisneros这个解决方案应该适合你。如果您的客户知道如何签署应用程序,他们将会理解如何使用api key作为参数运行您的脚本。 –

相关问题