Несколько ключей API в одном проекте Android


Можно ли указать несколько ключей для Google Maps Android API в одной и той же кодовой базе?

Похоже, что мне приходится менять ключ в файле манифеста каждый раз, когда я меняю хранилище ключей. Это не очень удобно, ИМХО, Если вам нужно протестировать приложение, подписанное ключами формы debug и release keystores.

4 2

4 ответа:

Я не думаю, что это то, что вы хотите сделать. Вы должны добавить ключ debug и release SHA1 в API-ключ на консоли Google Developer API. Взгляните на этот ответ

Я добавил оба ключа в манифест сразу. Вот так

<?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>

По-видимому, это работает. Похоже, Google code достаточно умен, чтобы автоматически использовать соответствующий ключ.

АФАИК, нет никакой программной формы для этого. Для comodity можно определить ключи API в строках.xml, и получить его из манифеста

String debugMapKey   = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
String releaseMapKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

String mapKey = BuildConfig.DEBUG ? debugMapKey : releaseMapKey;

MapView mv = new MapView(this, mapKey);