MapActivity: установите APIKey программно

В настоящее время я использую MapActivity в своем приложении. Я использую его с двумя ключами API. Один для отладки, а другой для «производства»

Мне надоело изменять эти значения в макете xml:

 <view class="com.google.android.maps.MapView" 
        android:id="@+id/myGmap" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="@string/api_key_prod" />

Мне надоело каждый раз менять apikey и заменять prod путем отладки каждый раз.

Можно ли изменить этот ключ в onCreate () моего приложения.

Представьте, что у меня есть логическое предпочтение, которое выглядит примерно так: isDebug.

Я могу проверить это предпочтение на мой телефон и отключите его по умолчанию в пользовательском приложении. и сделайте что-то вроде:

 if (isDebug)
     myMap.setApiKey(R.string.api_key_debug)
 else
     myMap.setApiKey(R.string.api_key_prod)

Большое спасибо за любую помощь.

21
задан hippietrail 19 May 2013 в 02:01
поделиться

1 ответ

Вы не можете одновременно иметь виджет в макете и установить ключ API в Java.

Если вы динамически создаете MapView через его конструктор, вы можете передать ключ API таким образом из кода Java, но тогда вам нужно будет динамически добавить его в свой макет.

При этом я бы решил проблему через ваш процесс сборки (например, на основе отладочной / производственной сборки скопируйте правильный XML-файл в правильный каталог).

9
ответ дан 29 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: