2

Is it possible to specify multiple keys for Google Maps Android API in the same code base?

It looks like I have to change the key in manifest file each time I change keystore. It's not very convenient, imho, if you need to test the app signed with keys form debug and release keystores.

hippietrail
  • 15,848
  • 18
  • 99
  • 158
Bobrovsky
  • 13,789
  • 19
  • 80
  • 130

4 Answers4

3

I added both keys in the manifest at once. Like this

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ..
    android:versionCode="1"
    android:versionName="1.0" >

        <!-- RELEASE key -->
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="my-release-keu" />

        <!-- DEBUG key -->
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="my-debug-key" />

    </application>

</manifest>

Apparently, this works. Looks like Google code is smart enough to use relevant key automatically.

Bobrovsky
  • 13,789
  • 19
  • 80
  • 130
2

I don't think this is what you want to do. You should add both debug and release SHA1 key to API key on Google Developer API Console. Take a look at this answer

Community
  • 1
  • 1
osrl
  • 8,168
  • 8
  • 36
  • 57
0

AFAIK, there is no programmatical form on doing this. For comodity, you can define API keys in strings.xml, and retrieve it from the manifest

webo80
  • 3,365
  • 5
  • 35
  • 52
0
String debugMapKey   = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
String releaseMapKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

String mapKey = BuildConfig.DEBUG ? debugMapKey : releaseMapKey;

MapView mv = new MapView(this, mapKey);
Jakob Eriksson
  • 18,597
  • 1
  • 25
  • 34