Проблемы с Android-совместимым пакетом - PullRequest
0 голосов
/ 02 января 2012

Привет. Мое приложение - это карта API Google. Я хотел бы, чтобы он был совместим со старой версией Android, так что я включил пакет совместимости Android jar v4 в папку libs. В моем манифесте у меня есть:

У меня есть этот сервис, который запускается при запуске моего приложения, и я хочу, чтобы он обновлял местоположение, а затем, когда карта будет загружена, она будет работать быстрее. Итак, у меня есть этот код в методе onCreate моего сервиса:

 Criteria criteria = new Criteria();
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    if (isEmulator() || !isOnline())
        provider = LocationManager.GPS_PROVIDER;
    else
        provider = locationManager.getBestProvider(criteria, false);

    try {
        Location location = locationManager.getLastKnownLocation(provider);
        if(location==null || location.getTime()>(new Date().getTime()-Constants.TIEMPO_ENTRE_LOC_UPDATE))

        locationManager.requestSingleUpdate(provider, null);
    }catch (Exception e){
        e.printStackTrace();
    }

Дело в том, что когда я запускаю приложение на эмуляторе (google apis level 7) Я получаю эту ошибку:

01-02 12: 21: 30.971: E / AndroidRuntime (523): java.lang.NoSuchMethodError: android.location.LocationManager. requestSingleUpdate 01-02 12: 21: 30.971: E / AndroidRuntime (523): на com.tresipunt.scm.MyService.onCreate (MyService.java:78)

Ну, конечно, я знаю, что запросы единственного обновления недоступны в предыдущих версиях API, но разве пакет совместимости не должен это исправить? Как я мог решить проблему? большое спасибо

1 Ответ

1 голос
/ 02 января 2012

Пакет совместимости не включает LocationManager. Вы можете увидеть доступные пакеты здесь: http://developer.android.com/sdk/compatibility-library.html#Using

...