我一直在爲Android使用Quickblox SDK。但是,新的SDK庫使我的一些代碼無法正常工作。具體來說,我創建了位置列表。然後我嘗試搜索附近的位置,提供當前位置和半徑。適用於Android的最新Quickblox SDK:獲取附近位置不起作用
getLocationsBuilder.setCurrentPosition(qbLocation.getLatitude(),
qbLocation.getLongitude());
getLocationsBuilder.setRadius(point.getLatitude(),
point.getLongitude(), (float) 5.0);
GeoPoint point = new GeoPoint(qbLocation.getLatitude(),
qbLocation.getLongitude());
但是,我得到格式不正確的結果。
'{ 「錯誤」:{ 「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,它可以正常工作。
此外,當我只搜索所有位置並且只有一個結果時,SDK崩潰,告訴QBCustomObject不能轉換爲QBEntityLimited – bahakz 2014-09-10 14:38:57