Places SDK for Android (Legacy) hỗ trợ Địa điểm hiện tại (Legacy). Nếu bạn đã quen thuộc với tính năng Địa điểm hiện tại (Phiên bản cũ), thì tính năng Tìm kiếm lân cận (Mới) sẽ có những thay đổi sau:
Sử dụng mô hình định giá mới. Để biết thông tin về giá của tất cả các API, hãy xem Places SDK for Android (mới).
Bạn phải khởi chạy ứng dụng bằng cách gọi phương thức
Places.initializeWithNewPlacesApiEnabled()
. Để biết thêm thông tin về cách chọn dịch vụ Places API, hãy xem phần Thiết lập dự án trên Google Cloud.Bạn phải che trường. Bạn phải chỉ định những trường mà bạn muốn trả về trong phản hồi. Không có danh sách mặc định về các trường được trả về. Nếu bạn bỏ qua danh sách này, các phương thức sẽ trả về lỗi.
Tính năng Tìm kiếm lân cận (Mới) không hỗ trợ
PlaceLikelihood
. Với tính năng Tìm kiếm lân cận (Mới), bạn có thể sử dụng thứ tự kết quả để xác định vị trí có khả năng cao nhất.
Ví dụ về Nearby Search (Mới)
Để biết thêm thông tin cũng như ví dụ về cách sử dụng tính năng Tìm kiếm lân cận (Mới), hãy xem tài liệu Tìm kiếm lân cận (Mới).
Sử dụng tính năng Tìm kiếm lân cận (Mới) để lấy địa điểm hiện tại
Mẫu sau đây minh hoạ cách lấy địa điểm hiện tại bằng tính năng Tìm kiếm lân cận (Mới) bằng cách thay thế việc sử dụng PlacesClient.findCurrentPlace()
bằng PlacesClient.searchNearby()
:
public class MainActivity extends extends AppCompatActivity {
private FusedLocationProviderClient fusedLocationProviderClient;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
// ...
// get permission
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
// get location and search
fusedLocationProviderClient
.getLastLocation()
.addOnSuccessListener(
this,
location -> {
if (location != null) {
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
CircularBounds circle = CircularBounds.newInstance(latLng, 10);
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);
SearchNearbyRequest.Builder request = SearchNearbyRequest.builder(circle, placeFields);
placesClient
.searchNearby(request.build())
.addOnSuccessListener(response ->
List<Place> places = response.getPlaces();)
.addOnFailureListener(
exception -> {
// handle failure
});
} else {
// failed to get location.
}
})
.addOnFailureListener(
e -> {
// handle error
});
} else {
ActivityCompat.requestPermissions(
this,
new String[] {Manifest.permission.ACCESS_FINE_LOCATION},
PERMISSION_REQUEST_CODE);
}
}
}