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
  • 14,735
  • 16
  • 96
  • 147
Bobrovsky
  • 13,274
  • 19
  • 77
  • 125

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,274
  • 19
  • 77
  • 125
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,303
  • 8
  • 34
  • 54
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,287
  • 5
  • 32
  • 50
0
String debugMapKey   = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
String releaseMapKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

String mapKey = BuildConfig.DEBUG ? debugMapKey : releaseMapKey;

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