Новейший Quickblox SDK для Android: получение ближайших местоположений не работает

Я уже давно использую Quickblox SDK для Android. Однако новая библиотека SDK сделала часть моего кода неработоспособной. В частности, я создаю список местоположений. Затем я пытаюсь найти близлежащие местоположения, предоставляя текущее местоположение и радиус.

  getLocationsBuilder.setCurrentPosition(qbLocation.getLatitude(),
  qbLocation.getLongitude());

  getLocationsBuilder.setRadius(point.getLatitude(),
          point.getLongitude(), (float) 5.0);



    GeoPoint point = new GeoPoint(qbLocation.getLatitude(),
            qbLocation.getLongitude());

Однако я получаю результат, что формат неверен.

'{"errors":{"current_position":["должен быть в формате GeoPoint","должен быть установлен с радиусом"]}}'

Вот весь мой код:

    Log.d(TAG,
            "update location is " + point.getLatitude() + " "
                    + point.getLongitude());

    QBLocationRequestBuilder getLocationsBuilder = new QBLocationRequestBuilder();
    getLocationsBuilder.setPage(1);
    getLocationsBuilder.setPerPage(100);
    getLocationsBuilder.setLastOnly();

    getLocationsBuilder.setCurrentPosition(qbLocation.getLatitude(), qbLocation.getLongitude());

    getLocationsBuilder.setRadius(point.getLatitude(),
    point.getLongitude(), (float) 5.0);

    int unixTime = (int) (System.currentTimeMillis() / 1000L - 1000);
    getLocationsBuilder.setMinCreatedAt(unixTime);

    // getLocationsBuilder.setSort(SortField.DISTANCE);

    QBLocations.getLocations(getLocationsBuilder, new QBEntityCallback<ArrayList<QBLocation>>() {
        @Override
        public void onSuccess(ArrayList<QBLocation> qbLocations, Bundle bundle) {
            ArrayList<String> card_ids = new ArrayList<String>();
            for (QBLocation location : qbLocations) {
                Log.d(TAG, "locations nearby : " + location);
                card_ids.add(location.getStatus()); // status is card_id
            }
            getCards(card_ids);
        }

        @Override
        public void onSuccess() {

        }

        @Override
        public void onError(List<String> strings) {

        }
    });

Я могу искать все местоположения и получать те, которые мне нужны, но это не так элегантно, как с помощью SDK.

Если я просто заменю Quickblox SDK на более раннюю версию, все будет работать нормально.


person bahakz    schedule 10.09.2014    source источник
comment
Кроме того, когда я ищу только все местоположения и есть только один результат, SDK вылетает, сообщая, что QBCustomObject не может быть приведен к QBEntityLimited.   -  person bahakz    schedule 10.09.2014


Ответы (1)


Похоже, это было исправлено в 1.2.4.

http://quickblox.com/developers/Android#Framework_changelog:

какую версию вы используете?

person Rubycon    schedule 10.09.2014
comment
Я думаю, что это работает с SDK 1.2.4. Но я хочу использовать новейший API и уже переписал свою программу и вызовы QuickBlox для поддержки новых обратных вызовов. Не работают только локации. - person bahakz; 11.09.2014