Mevcut Yeri Bulma (Eski) hizmetinden Yakında Arama (Yeni) hizmetine geçiş

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Android için Yerler SDK'sı (Eski), Current Place (Legacy)'yi destekler. Mevcut Yer (Eski) özelliğini kullanıyorsanız Yakındaki Arama (Yeni) özelliğinde aşağıdaki değişiklikler yapılır:

  • Yeni bir fiyatlandırma modeli kullanır. Tüm API'lerin fiyatlandırma bilgileri için Android için Yerler SDK'sı (Yeni) başlıklı makaleyi inceleyin.

  • Places.initializeWithNewPlacesApiEnabled() yöntemini çağırarak uygulamanızı başlatmanız gerekir. Rehber API hizmetini seçme hakkında daha fazla bilgi için Google Cloud projenizi ayarlama başlıklı makaleye bakın.

  • Alan maskeleme gereklidir. Yanıtta hangi alanların döndürülmesini istediğinizi belirtmeniz gerekir. Döndürülen alanların varsayılan bir listesi yoktur. Bu listeyi atlarsanız yöntemler hata döndürür.

  • Yakındaki Arama (Yeni), PlaceLikelihood özelliğini desteklemez. Yakındaki Arama (Yeni) ile en olası konumu belirlemek için sonuç sırasını kullanabilirsiniz.

Yakında Arama (Yeni) örnekleri

Daha fazla bilgi ve Yakınlarda Arama (Yeni) özelliğinin nasıl kullanılacağına dair örnekler için Yakınlarda Arama (Yeni) dokümanlarına bakın.

Mevcut yeri almak için Yakınlarda Arama'yı (Yeni) kullanın

Aşağıdaki örnekte, PlacesClient.findCurrentPlace() yerine PlacesClient.searchNearby() kullanılarak Nearby Search (Yeni) ile mevcut yerin nasıl alınacağı gösterilmektedir:

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);
    }

  }
}