MyLocationOverlay.enableCompass () перестал работать с Google Map API 7 и 8 - PullRequest
1 голос
/ 18 марта 2012

Arg .. Это расстраивает:

Внезапно (март 2012) MyLocationOverlay.enableCompass не работает.Он работает нормально, используя Google API 14, но оставляет весь экран черным на Google API 7 и Google API 8.

Я хотел бы сохранить функциональность компаса, но так как это не обязательно, я просто оставлю его отключеннымтеперь.Я думаю, что это может быть результатом установки Android SDK Tools 16 поверх SDK Tools 15 ... Может быть, это проблема с настройкой моего эмулятора или Eclipse?У меня есть сильное чувство, что эта проблема не возникнет на реальном устройстве. Следующим шагом с моей стороны будет попытка установить его на другой установке Eclipse / Android SDK, но это на другой день ...

СпасибоВы за вашу помощь.

Вот мой пример кода: во-первых, на Resume, я не включаю компас ... Все работает просто отлично.Во-вторых, onResume после onPause [нажать кнопку «Домой», а затем повторно запустить приложение], появляется черный экран.Что происходит?

@Override
public void onCreate(Bundle state)
{
    super.onCreate(state);
    setContentView(MAP_LAYOUT);
    MapView mv = (MapView) findViewById(MAP_VIEW);
    mv.setBuiltInZoomControls(true);
    List<Overlay> mapOverlays = mv.getOverlays();
    Context c = getApplicationContext();
    mLocation = new MyLocationOverlay(c,mv);
    mapOverlays.add(mLocation);
}

@Override
public void onPause() {
    super.onPause();
    mLocation.disableCompass();
    mLocation.disableMyLocation();
    mCompassOn = true;
}

boolean mCompassOn = false;

@Override
public void onResume() {
    super.onResume();
    if( mCompassOn ) mLocation.enableCompass();
    mLocation.enableMyLocation();
}

Мой манифест включает в себя:

...... ...

И мой макет включает, чтобы соответствовать правильному хранилищу ключей отладки:

<com.google.android.maps.MapView
    android:id="@+id/superMapView"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="3"
    android:clickable="true"
    android:apiKey="..." />

Платформа Eclipse

Версия: 3.7.0.v20110530-9gF7UHNFFt4cwE-pkZDJ7oz-mj4OSEIlu9SEv0f

Идентификатор сборки: I20110613-1736

Инструментарий разработки Android

Версия: 16.0.1.v201238341* Вопрос похож на http://groups.google.com/group/android-developers/browse_thread/thread/8928ffa71ef35f8a , но я бы хотел продолжить использовать компас ...

1 Ответ

0 голосов
/ 18 марта 2012

Может быть, это проблема с настройкой моего эмулятора или Eclipse?

Эмулятор никогда не эмулировал компас. Роза компаса просто не появилась бы. Это все еще то, что происходит со мной на эмуляторе Android 2.1, с этим примером проекта , даже после нажатия HOME и возврата к действию.

Вы можете немного постучать по черному экрану. Если вы получаете диалог ANR, то проблема в том, что что-то связывает основной поток приложения.

У меня сильное чувство, что эта проблема не возникнет на реальном устройстве

Это говорит о том, что у вас нет Android-устройства, в противном случае вы бы уже попробовали это. Вам нужно получить его, так как вы никогда не должны полагаться на эмулятор для вещей, которые слишком близки к аппаратному обеспечению (например, GPS, датчик магнитного потока для компаса).

Также замените все вхождения getApplicationContext() на this. Никогда не используйте getApplicationContext() для работы с графическим интерфейсом.

...