Я уже давно использую 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 на более раннюю версию, все будет работать нормально.